2010-05-08 2 views
5

인텔 컴파일러와 vs2008 모두에 대해 bjam을 사용하여 부스트 라이브러리를 구축하고 있는데 bjam에서 컴파일러로 전달되는 최적화를 알 수 없습니다. 컴파일러의 gcc 중 하나에 대해 bjam 파일 중 하나에서 일부 최적화를 볼 수는 있지만 컴파일러에 대한 최적화 플래그를 찾을 수 없습니다. 그래서, 내 질문은 -bjam이 빌드를 향상시키는 데 사용하는 최적화 방법을 알려주는 방법

  1. 누구는 기본 최적화 플래그가 어디에 있는지 알고 있습니까?
  2. bjam에서 선언 된 경우 누구에게 어떻게 무시할 수 있는지 알고 있습니까? 당신은 당신에게 명령의 완전한 세트를 제공하기 위해 -n -a 옵션과 건물 옵션의 나머지 부분과 bjam을 실행할 수있는 빌드 할 때 컴파일러를 호출에 전달되는 옵션의 전체 세트의보고에 관심이 있다면
+0

많은 라이브러리가 헤더 전용입니다. 예를 들어 특정 라이브러리의 최적화에 관심이 있으십니까? – Anycorn

+0

나는 boost :: gregorian :: date에 부분적으로 정적 라이브러리 인 – Steve

+0

과 관련이 있습니다.이 질문을 확인해보십시오. 대답해야합니다 : http://stackoverflow.com/questions/2722421/how-to-determine-value -of-cxxflags-in-bjam-or-append-to-it – Anycorn

답변

8

호출되고 응답 파일이 생성됩니다 (Boost Jam Options 참조). 또한 Boost Build 소스를 직접 살펴보고 지정된 기능이 무엇으로 변환되었는지 확인할 수 있습니다 (Boost Build Tools Files 참조). 예를 들어 : MSVC 선을 msvc.jam (msvc.jam #1139)

의 1139-1153를 참조하십시오 GCC를 들어

  • 당신은 아마 같은 알아낼 수있는 라인을 gcc.jam (gcc.jam #292)
  • 의 292-300 참조 다른 컴파일러의 경우 소스를 살펴 보는 것만으로도 쉽게 설명 할 수 있습니다. 그리고 *.jam 소스에서 "<optimization>"과 "<inlining>"을 검색하면됩니다.

    빌드시 명령 줄에 feature=value 옵션을 지정하여 명령 줄에서 무시할 수 있습니다. 옵션은 도구 세트 파일에 표시되는 <feature>value 사양과 일치합니다. 예를 들어, 명령 행에서 지정하는 최적화 기능을 무시하려면 "optimization=speed"과 같아야합니다. 더 세분화 된 제어가 필요한 경우에는 Boost Build 사양을 조사하고 빌드 할 특정 옵션과 기능을 정의하기 위해 다양한 변형을 만들어야 할 것입니다.

관련 문제