Tra*_*kel 5 cmake library-path
我构建了自己的GCC和库,并将库放在/opt/gcc-4.6.2/lib
如此通用的库中,就像libstdc++
不干扰系统的其他部分一样.这意味着我必须手动指定库搜索路径:
$> g++-4.6.2 -L/opt/gcc-4.6.2/lib input.cpp
Run Code Online (Sandbox Code Playgroud)
当试图让我的项目用CMake构建时,我似乎无法弄清楚如何告诉CMake搜索该库.该文件说,使用CMAKE_LIBRARY_PATH
,这是我用于生成我的Makefile行设置:
$> cmake .. -DCMAKE_CXX_COMPILER=g++-4.6.2 \
-DCMAKE_LIBRARY_PATH=/opt/gcc-4.6.2/lib
Run Code Online (Sandbox Code Playgroud)
但是,这在简单的程序编译测试中失败了:
# 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...
Run Code Online (Sandbox Code Playgroud)
我似乎无法找到使CMake的发射所需的巫术-L/opt/gcc-4.6.2/lib
的测试编译(我知道CMAKE_LIBRARY_PATH
的作品后,该项目建成).如何强制CMake使用替代库路径来链接测试可执行文件?
嗯,我不熟悉 gcc 是如何构建自身的,但我想它应该知道在哪里搜索它的库。也许你应该尝试交叉编译。
另外,CMAKE_LIBRARY_PATH
不会帮助您解决问题,因为它仅为 CMake 设置库搜索路径,而不为编译器设置库搜索路径。
CMAKE_CXX_FLAGS
所以,除了设置或CMAKE_EXE_LINKER_FLAGS
之外,我没有看到任何其他方法-L/opt/gcc-4.6.2/lib
。
归档时间: |
|
查看次数: |
1876 次 |
最近记录: |