CMake Error at /usr/share/cmake-3.16/Modules/CMakeTestCCompiler.cmake:60 (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/iflytek/www_ws/build/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/make cmTC_1f508/fast && /usr/bin/make -f CMakeFiles/cmTC_1f508.dir/build.make CMakeFiles/cmTC_1f508.dir/build make[1]: Entering directory '/home/iflytek/www_ws/build/CMakeFiles/CMakeTmp' Building C object CMakeFiles/cmTC_1f508.dir/testCCompiler.c.o /usr/bin/cc -o CMakeFiles/cmTC_1f508.dir/testCCompiler.c.o -c /home/iflytek/www_ws/build/CMakeFiles/CMakeTmp/testCCompiler.c Linking C executable cmTC_1f508 /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1f508.dir/link.txt --verbose=1 /usr/bin/cc -rdynamic CMakeFiles/cmTC_1f508.dir/testCCompiler.c.o -o cmTC_1f508 /usr/bin/ld: 2: Syntax error: Unterminated quoted string collect2: error: ld returned 2 exit status make[1]: *** [CMakeFiles/cmTC_1f508.dir/build.make:87: cmTC_1f508] Error 1 make[1]: Leaving directory '/home/iflytek/www_ws/build/CMakeFiles/CMakeTmp' make: *** [Makefile:121: cmTC_1f508/fast] Error 2
时间: 2023-08-02 10:10:04 浏览: 443
根据错误信息显示,CMake在执行编译过程遇到了问题。具体来说,它无法成功链接生成可执行文件,因为ld(链接器)返回了错误。
错误信息中提到了"/usr/bin/ld: 2: Syntax error: Unterminated quoted string",这可能是由于编译器或链接器的配置问题导致的。
以下是一些可能的解决方案:
1. 确保您的GCC编译器和ld链接器都是最新版本。您可以尝试更新您的系统软件包,或者从GCC官方网站下载并手动安装最新版本。
2. 检查您的系统是否存在其他不兼容的编译器或链接器。有时,系统中存在其他编译器或链接器可能会导致冲突。您可以使用命令`which gcc`和`which ld`来检查系统上使用的编译器和链接器路径,并确保它们是正确的。
3. 如果您之前安装过其他版本的GCC,请确保您已正确配置环境变量,以便CMake能够找到正确的编译器和链接器。您可以检查以下环境变量:
- `CC`:指定C编译器的路径
- `CXX`:指定C++编译器的路径
- `LD`:指定链接器的路径
您可以通过在终端中运行`echo $CC`,`echo $CXX`和`echo $LD`来检查这些变量的值。如果它们没有正确设置,您可以使用`export`命令在终端中设置它们,或者在您的shell配置文件(如~/.bashrc或~/.zshrc)中添加相应的`export`语句。
4. 尝试使用不同的编译器和链接器进行编译。您可以尝试使用其他可用的编译器和链接器,例如Clang。在使用CMake构建项目时,可以通过设置相应的环境变量来指定要使用的编译器和链接器。
如果您尝试了以上解决方案但问题仍然存在,请提供更多详细信息,以便我能够更好地帮助您解决问题。
阅读全文