2012-01-09 8 views
5

내 자신의 GCC 및 라이브러리를 구축하고 libstdc++과 같은 총칭 라이브러리가 시스템의 다른 부분을 간섭하지 않도록 /opt/gcc-4.6.2/lib에 라이브러리를 넣습니다. CMake 빌드 내 프로젝트를 얻을하려고 할 때CMake 라이브러리 검색 경로가 testCXXCompiler에서 실패했습니다.

$> g++-4.6.2 -L/opt/gcc-4.6.2/lib input.cpp 

것은, 내가 그 라이브러리를 검색 할 수 CMake에게 방법을 알아낼 수없는 것 : 이것은 내가 수동으로 라이브러리 검색 경로를 지정하는 것을 의미합니다.

이것은, 그러나, 간단한 프로그램의 컴파일 테스트에 실패
$> cmake .. -DCMAKE_CXX_COMPILER=g++-4.6.2 \ 
      -DCMAKE_LIBRARY_PATH=/opt/gcc-4.6.2/lib 

하기 :

# blah blah blah... 

/usr/local/bin/g++-4.6.2 
CMakeFiles/cmTryCompileExec.dir/testCXXCompiler.cxx.o -o cmTryCompileExec 
-rdynamic 

/usr/bin/ld: cannot find -lstdc++ 

# blah blah blah... 

내가 보이지 않을 수 documentation 내가 내 메이크 파일을 생성하는 데 사용되는 라인에 설정하는 CMAKE_LIBRARY_PATH을 사용 말한다 CMake가 테스트 컴파일을 위해 -L/opt/gcc-4.6.2/lib을 방출하게하는 데 필요한 부두교의 마법을 찾으십시오. (은 이 프로젝트가 빌드 된 후 이후에 나옵니다.) CMake가 대안 라이브러리 경로를 사용하여 테스트 실행 파일을 링크하도록하려면 어떻게해야합니까?

답변

2

흠, gcc 빌드 방법에 익숙하지 않지만 libs를 찾는 위치를 알아야한다고 생각합니다. 크로스 컴파일을 시도해야 할 수도 있습니다.

또한 CMAKE_LIBRARY_PATH은 컴파일러가 아닌 CMake에 대해서만 라이브러리 검색 경로를 설정하므로 문제를 해결하는 데 도움이되지 않습니다.

따라서 CMAKE_CXX_FLAGS 또는 CMAKE_EXE_LINKER_FLAGS에서 -L/opt/gcc-4.6.2/lib으로 설정하는 것 외에 다른 방법은 없습니다.