2011-07-25 2 views
4

,이 라이브러리에 대한 단위 테스트와 프로젝트를 재건.
분명히 두 번째 프로젝트는 첫 번째 프로젝트에 달려 있습니다.
두 프로젝트 모두 외부 빌더를 사용합니다.이클립스 CDT : 나는 이클립스 인디고 + CDT 그것은이 라이브러리 프로젝트로 만들어졌다 리눅스</p> <p>에서 실행으로 C++ 프로젝트에서 일하고 있어요 종속 프로젝트

그러나 첫 번째 프로젝트의 헤더를 수정할 때 테스트 프로젝트가 다시 빌드되지 않습니다. 그리고 나는 그것을 할 수 없습니다. 헤더가 테스트 프로젝트에 포함되어 있더라도 두 번째 프로젝트를 다시 링크 할 것입니다. 라이브러리에서 작업하는 동안 빌드 작업을하는 경우가 많기 때문에 이것은 매우 성가시다. 그런 다음 어느 시점에서 전체 재 구축을 수행하면 30 분 전에했던 작업에 오류가 발생합니다. CDT의 글로벌 빌드 콘솔의

예 출력 :

**** Build of configuration Debug for project libxxx **** 

make -j all 
Building file: ../foo.cpp 
Invoking: GCC C++ Compiler 
ccache g++ -I"/home/foke/workspaces/cpp/libxxx/include" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"foo.d" -MT"foo.d" -o "foo.o" "../foo.cpp" 
Finished building: ../foo.cpp 

Building target: libxxx.a 
Invoking: GCC Archiver 
ar -r "libxxx.a" ./foo.o ./src/yyy.o ./src/detail/zzz.o 
ar: creating libxxx.a 
Finished building target: libxxx.a 


**** Build Finished **** 

**** Build of configuration Debug for project libxxx_tests **** 

make -k -j all 
Building target: libxxx_tests 
Invoking: Cross G++ Linker 
g++ -L"/home/foke/workspaces/cpp/libxxx/Debug" -o "libxxx_tests" ./main.o ./aaa.o ./tests/bbb.o ./tests/ccc.o ./tests/ddd.o -lboost_unit_test_framework -lxxx 
Finished building target: libxxx_tests 


**** Build Finished **** 

답변

4

당신이 MS 비주얼 스튜디오의 최신 버전을 사용하는 경우 다음 당신은 당신의 책상에 공간을 취소하고 거대한 '로 표시해야 X '- 이클립스/CDT를 사용할 때 당신의 주먹과 어쩌면 당신 머리가 좌절감을 느끼게 될 것입니다.

Eclipse에는 거의 의존하지 않는 자체 종속성 메커니즘이 있지만 다행히도 CDT 모듈에는 원하는대로하려고하는 고유 한 종속성 메커니즘이 있습니다.

Project-->Properties-->C/C++ General-->Paths and Symbols-->References 

그래서 당신의 예를 들어 당신이 "libxxx_tests"에 대한 프로젝트 속성에 갈 것이라고 및 종속성으로 "libxxx.a"를 선택 : 설정하려면 프로젝트 종속성로 이동합니다.

이 페이지를 사용하여 라이브러리 순서를 설정할 수도 있습니다. 이는 프로젝트의 복잡성에 따라 중요한 단계 일 수 있습니다.

+1

안녕하세요. 작동하지 않습니다. 나는 오래 전부터이 문제에 좌절감을 느낀다. 나는 그것을 여기에서 요청했다 : http://stackoverflow.com/questions/9884827/eclipse-cdt-not-building-project-on-header-file-change 그리고이 이클립스 버그를 여기에 올렸다 : https://bugs.eclipse.org /bugs/show_bug.cgi?id=375800 – haelix

+0

은 Code Composer Studio 5.5.0에서 작동합니다. Eclipse 3.8.1 및 CDT 8.1.1을 기반으로합니다. –

관련 문제