15

我正在尝试编译一个项目,但 CMake 在一开始就停止了 gcc 已损坏的消息(见下文)。当谈到 CMake 时,我是无知的,所以非常欢迎任何帮助我开始调试这个问题的地方。

  • GCC (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 (我检查了我的 GCC 编译了一个“hello world”问题)
  • CMake 版本2.8.7
  • CMake 命令:cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug ../Mantid

输出到终端:

-- C 编译器标识为 GNU
-- CXX 编译器标识为 GNU
-- 无法确定 Eclipse 版本,假设至少为 3.6 (Helios)。如果这是错误的,请调整 CMAKE_ECLIPSE_VERSION。
-- 检查工作的 C 编译器:/usr/bin/gcc-4.6
-- 检查工作的 C 编译器:/usr/bin/gcc-4.6 --在 /usr/share/cmake-2.8/Modules/CMakeTestCCompiler 处损坏
的 CMake 错误.cmake:52 (MESSAGE):
C 编译器“/usr/bin/gcc-4.6”无法编译简单的测试程序。

它失败并显示以下输出:

更改目录:/home/jmborr/devel/mantidproject/mantid/Code/debug/CMakeFiles/CMakeTmp

运行构建命令:/usr/bin/make "cmTryCompileExec/fast"

/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build

make[1]: 进入目录`/home/jmborr/devel/mantidproject/mantid/Code/debug/CMakeFiles/CMakeTmp'

/usr/bin/cmake -E cmake_progress_report /home/jmborr/devel/mantidproject/mantid/Code/debug/CMakeFiles/CMakeTmp/CMakeFiles 1

构建 C 对象 CMakeFiles/cmTryCompileExec.dir/testCCompiler.co

/usr/bin/gcc-4.6 /usr/include -o CMakeFiles/cmTryCompileExec.dir/testCCompiler.co -c /home/jmborr/devel/mantidproject/mantid/Code/debug/CMakeFiles/CMakeTmp/testCCompiler.c

gcc-4.6:警告:/usr/include:链接器输入文件未使用,因为链接未完成

链接 C 可执行文件 cmTryCompileExec

/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1

/usr/bin/gcc-4.6 /usr/include /usr/lib CMakeFiles/cmTryCompileExec.dir/testCCompiler.co -o cmTryCompileExec -rdynamic

/usr/bin/ld: 找不到 /usr/include: 文件格式无法识别

/usr/bin/ld: 找不到 /usr/lib: 文件格式无法识别

collect2: ld 返回 1 个退出状态

make[1]: 离开目录

4

2 回答 2

4

检查此链接

我有同样的问题。我认为问题在于您需要更多参数来编译(例如链接器脚本,标志...)。像这样更改您的 CMakeLists.txt 并重试:

INCLUDE(CMakeForceCompiler)
CMAKE_FORCE_C_COMPILER(gcc GNU)
CMAKE_FORCE_CXX_COMPILER(g++ GNU)

不要忘记在环境变量中设置编译器的路径。

于 2013-05-17T08:20:52.263 回答
-1

在 CLion 中,我也发生了同样的事情。

检查您的编译器和其他东西是否正确安装和/或配置。

我重新安装了 GCC 编译器和 CMake,然后重新配置了我的 IDE。

从那时起它对我有用!

于 2018-12-20T15:57:43.883 回答