我正在尝试运行这个简单的CMake命令:
$ cmake -D CMAKE_C_COMPILER=/usr/bin/gcc -D CMAKE_CXX_COMPILER=/usr/bin/g++ ./src/
我得到以下输出:
- C编译器标识是GNU 4.8.2
- CXX编译器标识为GNU 4.8.2
- 检查工作的C编译器:/ usr / bin / gcc
- 检查工作的C编译器:/ usr / bin / gcc - 已损坏
/usr/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:61中的CMake错误(消息): C编译器“/ usr / bin / gcc”无法编译简单的测试程序。
出错的原因如下:
gcc:错误:无法识别的命令行选项'-rpath'
因为CMake尝试使用以下命令进行链接:
据我所知,gcc没有独立的'-rpath'选项。我不确定为什么CMake会这样做。/ usr / bin / gcc -rpath / usr / local / openblas / lib CMakeFiles / cmTryCompileExec1190183239.dir / testCCompiler.c.o -o cmTryCompileExec1190183239 -rdynamic
有没有其他人遇到过这个?溶液
谢谢!
PS:可能有用的更多信息: 我正在尝试学习如何使用CMake,因此目录结构非常简单:
-cmake_test /
-bin /
-src /
-executable.cpp
-CMakeLists.txt
-CMakeLists.txt
修改
的完整输出
$ cmake ./src/
-- The C compiler identification is GNU 4.8.2
-- The CXX compiler identification is GNU 4.8.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- broken
CMake Error at /usr/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:61 (message):
The C compiler "/usr/bin/cc" is not able to compile a simple test program.
It fails with the following output:
Change Dir: /home/gyorgy/Workspace/CPP_Tests/src/cmake_test/CMakeFiles/CMakeTmp
Run Build Command:/usr/bin/make "cmTryCompileExec961681416/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec961681416.dir/build.make
CMakeFiles/cmTryCompileExec961681416.dir/build
make[1]: Entering directory
`/home/gyorgy/Workspace/CPP_Tests/src/cmake_test/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report
/home/gyorgy/Workspace/CPP_Tests/src/cmake_test/CMakeFiles/CMakeTmp/CMakeFiles
1
Building C object
CMakeFiles/cmTryCompileExec961681416.dir/testCCompiler.c.o
/usr/bin/cc -o CMakeFiles/cmTryCompileExec961681416.dir/testCCompiler.c.o
-c
/home/gyorgy/Workspace/CPP_Tests/src/cmake_test/CMakeFiles/CMakeTmp/testCCompiler.c
Linking C executable cmTryCompileExec961681416
/usr/bin/cmake -E cmake_link_script
CMakeFiles/cmTryCompileExec961681416.dir/link.txt --verbose=1
/usr/bin/cc -rpath /usr/local/openblas/lib
CMakeFiles/cmTryCompileExec961681416.dir/testCCompiler.c.o -o
cmTryCompileExec961681416 -rdynamic
cc: error: unrecognized command line option ‘-rpath’
make[1]: *** [cmTryCompileExec961681416] Error 1
make[1]: Leaving directory
`/home/gyorgy/Workspace/CPP_Tests/src/cmake_test/CMakeFiles/CMakeTmp'
make: *** [cmTryCompileExec961681416/fast] Error 2
CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
-- Configuring incomplete, errors occurred!
See also "/home/gyorgy/Workspace/CPP_Tests/src/cmake_test/CMakeFiles/CMakeOutput.log".
See also "/home/gyorgy/Workspace/CPP_Tests/src/cmake_test/CMakeFiles/CMakeError.log".
答案 0 :(得分:2)
我向所有人道歉......错误是由于我不久前犯了错误。
简而言之,我的.bashrc文件中有以下不正确的行:
export LDFLAGS="-rpath /usr/local/openblas/lib "$LDFLAGS
和CMake在CMakeCommonLanguageInclude.cmake模块中有以下行:
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS_INIT} $ENV{LDFLAGS}"
这显然导致将CMAKE_EXE_LINKER_FLAGS设置为-rpath /usr/local/openblas/lib
和。{
因此错误。将.bashrc文件更改为:
export LDFLAGS="-Wl,-rpath=/usr/local/openblas/lib "$LDFLAGS
问题已经解决。
我不知道为什么没有提出GUI版本:-)
我可能通过阅读OSX论坛或其他东西弄乱了.bashrc文件。
无论如何,谢谢你的答案!