2013-12-08 2 views
0

다른 최적화가 실행되는 실행 파일을 함께 수집하려고합니다. 내 유일한 질문은 gcc 명령과 -c도 -O 플래그를 사용할 수 있어야한다는 것입니다. gcc 명령에 최적화 플래그를 넣어서 exe를 만들 때 크기가 파일 사이에 전혀 다르지 않다는 것을 알았 기 때문에 나는 이것을 묻는다.GCC 최적화 플래그

g++ -c cat.cpp 
g++ -c dog.cpp   
g++ cat.o dog.o -o catdog 

내가 이렇게 모든 걸 플래그를 사용합니다 : : 누군가가 나를 도울 수 있다면

g++ -c -O2 sobol.cpp 
g++ -c -O2 sobol_prb.cpp   
g++ sobol.o sobol_prb.o -O2 -o catdog02 

, 내가 크게 고맙겠 예를 들어

, 나는 이런 식으로 뭔가를 .

감사합니다.

답변

1

예, 모든 개체 컴파일시 최적화 플래그를 사용하십시오.

(일반적으로, 그것은 '작은'프로젝트의 경우에도 쉽게 이런 종류의 일을하게 SCons는 같은 빌드 시스템을 사용합니다.)

1

당신은 이런 식으로 작업을 수행 할 수 있습니다

g++ sobol.cpp sobol_prb.cpp -O2 -o catdog02 

2 개 또는 3 개 이상의 파일을 컴파일해야하는 경우 Makefile을 고려해야합니다.

평범하지 않은 프로젝트에서 작업하는 경우 빌드 시스템을 @polkadotcadaver 제안으로 시작해야하지만 다른 빌드 시스템보다 많이 사용되므로 automake 또는 cmake를 사용합니다. .

0

개체 (.o) 파일에서 gcc를 실행하면 기본적으로 적절한 라이브러리가 선택된 링커가 호출됩니다. 일반 모드에서이 단계는 컴파일이 필요 없으며 최적화 플래그는 아무 효과가 없습니다.

최적화는 컴파일 단계 (.cpp 입력을 사용하는 단계)에서 발생하며 최적화 스위치가 관련되어 있습니다.

이야기는 링크 시간 최적화 (-flto)와 약간 다릅니다. 컴파일 및 링크 할 때 최적화 스위치를 사용해야합니다.