【问题标题】:CMake reports GCC is broken. Where do I start?CMake 报告 GCC 已损坏。我从哪里开始?
【发布时间】:2013-05-11 17:41:18
【问题描述】:

我正在尝试编译一个项目,但 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 -- broken
CMake Error at /usr/share/cmake-2.8/Modules/CMakeTestCCompiler.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.c.o

/usr/bin/gcc-4.6 /usr/include -o CMakeFiles/cmTryCompileExec.dir/testCCompiler.c.o -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.c.o -o cmTryCompileExec -rdynamic

/usr/bin/ld: 找不到 /usr/include: 文件格式不存在 认可

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

collect2: ld 返回 1 个退出状态

make[1]: 离开目录

【问题讨论】:

    标签: gcc cmake


    【解决方案1】:

    检查这个link

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

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

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

    【讨论】:

    • 不是这样的。我发现问题仅限于我的帐户。我创建了一个新的用户帐户,我可以从这个帐户编译。
    • 好的。所以这意味着您的最后一个帐户没有访问和执行编译器的管理员权限?对!
    • 是的,它有。我一天编译没有麻烦,第二天我什么也做不了。去图 :( 我什至禁用了我的 .bash_aliases 但没有解决问题。
    【解决方案2】:

    在 CLion 中我也遇到了同样的情况。

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

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

    从那时起它对我有用!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多