2013-06-11 1 views
0

나는 파일과 리눅스 프로그래밍을 처음부터 새로하고 있으며 Netbeans 프로젝트를 설정하는 데 어려움을 겪고있다./내가 원하는 것을하기 위해 파일을 만든다. 내 프로젝트는 여러 개의 라이브러리로 구성되어 그룹으로 나뉘어 아카이브됩니다.NetBeans는 make 파일에 여러 .o 라이브러리 출력을 설정합니까?

기본적으로 각 .cpp 파일은 .o 파일로 컴파일해야하는 개별 라이브러리이므로 각 그룹의 모든 .o 파일은 .a 파일로 아카이브해야합니다.

for i in *.cpp; do g++ -I./ -c $i -o $i.o ; done 

다음 : 명령 줄에 나는이 라인을 따라 뭔가를 할 것

내가 올바른 그룹으로 출력 라이브러리 .o 인 파일을 만들기 파일을 설정하는 것입니다 도움이 필요 무엇
ar -r "libWhatever.a" *.o 

폴더를 만들고 그것이 만드는 모든 여분의 폴더를 제거하십시오. 또한 자동으로 라이브러리 그룹을 보관하도록하십시오.

은 내 프로젝트는 다음과 같이 설정 :

project -> source - > library_group -> cpp files + sub-folders containing cpp files that are part of the library group. 

project -> header -> library_group -> h files + sub-folders containing h files that are part of the library group. 

넷빈즈에서 나는 모든 필요한 파일 및 폴더를 포함하는 "소스 파일"에서 "디렉토리를 포함"+ "헤더 파일은"속성을 설정합니다.

이 프로젝트는 현재 차질없이 컴파일하지만 이런 식으로 출력 :

출력은 다음과 같이하는
build -> Debug -> GNU-Linux-x86 -> Project -> library_group -> libraries + sub-folders containing more libraries. 

내가 원하는 것은 : 방법에

build -> Debug -> library_group (this folder should contain all .o files associated with the library group) 

모든 아이디어를 내가 원하는 것을하기 위해 make 파일을 설정 하시겠습니까?

+0

어디에서 메이크 파일을 상주시키고 싶습니까? 그리고 어디서 실행하고 싶습니까? – Beta

+0

make 파일은 프로젝트 폴더의 한 수준 위에 존재합니다. IE : project_name (파일, 자식 정보 생성) -> project –

답변

0

이것은 여러 번의 반복이 필요할 수 있습니다. 나는 많이 추측해야 할 것이다.

먼저 단일 개체 파일을 작성해 봅시다.

build/Debug/library_group/bar.o : project/source/library_group/foo/bar.cpp 
    g++ -Iproject/source/library_group -Iproject/source/library_group/quartz -c $< -o [email protected] 

을 우리에게 결과를 알려 : 소스 파일 중 하나가 foo/bar.cpp이며,이 baz.hquartz/quince.h가 포함되어있는 경우,이 규칙을보십시오.