MSBuild를 사용하여 빌드를 생성하고 명령 줄의 dproj에 빌드 구성을 빌드합니다. 이렇게 생성 된 실행 파일의 크기가 IDE 빌드가 생성하는 것과는 많이 다르지는 않지만 여전히 다르다고 당황 스럽습니다. 어떤 아이디어? 같은 컴파일러가 사용 된 줄 알았겠습니까?Delphi 2009 IDE에서 생성 된 실행 파일과 명령 행에서 생성 된 실행 파일이 다른 이유는 무엇입니까?
답변
IDE가 무엇인지 확인하려면
도구 | 옵션 | 환경 옵션 | 컴파일 및 실행 | 명령 줄 표시
그리고 컴파일러 메시지를 확인할 수 있습니다.
델파이 명령 줄 컴파일러에서 건물의 주요 기능은 표준화입니다. 명령 줄, .cfg 파일 등에서 옵션을 명시 적으로 지정하면 컴파일러가 독점적으로 제공되는 옵션을 따르게됩니다. 반대로 IDE에는 명확하고 명확하지 않은 다른 많은 동작이 있습니다. 예를 들어 프로젝트 옵션에 지정되지 않은 라이브러리 경로를 검색 할 수 있습니다. 내 생각 엔 IDE 빌드에서 어떤 일이 벌어지고 있는지 전혀 알지 못하는 상황이 발생했습니다. 이것이 표준화 된 빌드가 명령 줄에서 수행되는 이유입니다.
이 동작은 사용 된 모든 Delphi 버전에 존재합니다. (5 - 2006). 나는 그것에 대해 많이 걱정하지 않을 것이다. 처음 발견했을 때 나는 그 차이를 해결하기 위해 많은 시간을 보냈습니다. 컴파일러 플래그가 누락 되었습니까? IDE와 명령 행 컴파일러가 지원하는 옵션간에 불일치가 있습니까?
결국 나는 그것이 큰 문제가 아니었다 고 결정했다. 둘 다 기능적으로 동등한 실행 파일을 꾸준히 만들어 냈습니다.
명령 줄 컴파일러에 정확히 동일한 매개 변수를 제공하면 생성 된 실행 파일이 사실상 동일합니다.
실제로 IDE는 명령 행 컴파일러를 호출합니다. IDE에서 프로젝트를 컴파일하고 메시지 창을 봅니다. 당신은 전체 dcc32.exe 호출을 볼 수 있습니다 ...
빌드 일관성을 위해 명령 줄을 사용하는 것에 대한 첫 번째 대답은 옳았습니다. 아마도 빌드 시스템에 의존하고 있다면 걱정할 필요가 없을 것입니다. 프로덕션 파일은 항상 콘솔 빌드에서 제공됩니다.
다른 한편으로, 실제로 진행되고있는 상황을 파악하려면지도 파일을 전체 세부 수준에서 켜고 비교/비교해야합니다. 두 사람 사이에 차이가 있다면 거기에 나타날 것입니다. 존재할 수있는 다른 차이점은 명령 행 옵션이 다른 경우 (예 : IDE 설정에서 설정할 수있는 조건부 플래그) 일 수 있습니다.
+1지도 파일 권장 사항입니다. 그들은 요즘 훨씬 적은 집중력을 가지고있는 것처럼 보이지만, 실제로 응용 프로그램이 실제로 무엇을 사용하고 있는지를 알기에는 여전히 유효합니다. – skamradt
- 1. 생성 된 코 테스트 실행
- 2. Java Eclipse : 명령 행에서 실행
- 3. Eclipse에서 생성 된 실행 가능한 jar 파일이 실행되지 않습니까?
- 4. biztalk 2009 코드 생성 코드 분석 실행
- 5. 명령 행에서 생성 된 서브 프로세스를 nohup하려면 어떻게해야합니까?
- 6. 독립형 실행 파일 생성
- 7. 내가 생성 된 HTML 파일이
- 8. Xcode, 명령 줄 도구 : NSAutoreleasePool이 생성 된 템플릿에있는 이유는 무엇입니까?
- 9. 플렉스 생성 실행 파일에서 출력 생성
- 10. Resharper intellisense가 생성 된 파일과 작동하지 않습니다.
- 11. 생성 된 열이 다른 생성 된 열에 달려 있음
- 12. 짧은 실행 프로그램에 의해 생성 된 스레드 수를 확인하십시오.
- 13. 패키지에서 명령 행에서 Groovy 클래스 실행
- 14. Qt 생성 실행 파일
- 15. 실행 취소 ./configure 명령
- 16. 다른 WSDL에서 생성 된 서비스
- 17. Delphi 애플리케이션에서 실행 된 SQL 쿼리 모니터링
- 18. StackPanel이 생성 된 클래스에없는 이유는 무엇입니까? (NullReferenceException)
- 19. 동일한 코드를 다시 컴파일하면 VC++에서 다른 실행 파일이 생성됩니다.
- 20. 레일스에서 최근 생성 된 각 요소를 단계별로 실행 하시겠습니까?
- 21. FileUtils에서 실행 된 명령 가져 오기?
- 22. '실행 파일이 서명 된 잘못된 자격'
- 23. 동적으로 생성 된 DOM 요소를 기반으로 스크립트 실행
- 24. SSMS에서 LINQ 생성 SQL 실행
- 25. JSON 파일을 통해 동적으로 생성 된 테이블에서 dataTable 실행
- 26. imwrite를 사용하여 생성 된 파일이 표시되지 않습니다.
- 27. 런타임에 실행 가능한 jar 생성
- 28. valgrind에서 생성 된 코어 디버깅
- 29. 발견 된 파일에 대한 명령 실행
- 30. 매뉴얼 테스트의 액션 레코딩에서 생성 된 CodedUI 테스트 실행
이것은 어떻게 OP가 실제로 그 공급을하는 데 도움이됩니까? –
이것은 빌드 도구 (Steve가 그의 질문에 MSBuild를 언급했다)가 Delphi의 IDE에서와 같은 방식으로 * 정확히 * 컴파일되도록/할 수 있는지 여부를 확인하는 데 도움이됩니다. –