c++ - 无法编译我的旧项目(使用 gcc)

标签 c++ eclipse cmake yocto clion

当我将 CLionyocto SDK 一起使用时,我的 C 编译器出现故障,但它在 eclipse Oxygen 上运行良好。 这是编译器中的错误:

    CMake Error at /home/developer/yocto_SDK2/toolchain2/sysroots/x86_64-pokysdk-linux/usr/share/cmake-3.7/Modules/CMakeTestCCompiler.cmake:51 (message):
      The C compiler
      "/home/developer/yocto_SDK2/toolchain2/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc"
      is not able to compile a simple test program.

这是日志错误:

/home/developer/yocto_SDK2/toolchain2/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/6.4.0/real-ld: cannot find crt1.o: No such file or directory
/home/developer/yocto_SDK2/toolchain2/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/6.4.0/real-ld: cannot find crti.o: No such file or directory
/home/developer/yocto_SDK2/toolchain2/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/6.4.0/real-ld: cannot find crtbegin.o: No such file or directory
/home/developer/yocto_SDK2/toolchain2/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/6.4.0/real-ld: cannot find -lgcc
/home/developer/yocto_SDK2/toolchain2/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/6.4.0/real-ld: cannot find -lgcc_s
/home/developer/yocto_SDK2/toolchain2/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/6.4.0/real-ld: cannot find -lc
/home/developer/yocto_SDK2/toolchain2/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/6.4.0/real-ld: cannot find -lgcc
/home/developer/yocto_SDK2/toolchain2/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/6.4.0/real-ld: cannot find -lgcc_s
/home/developer/yocto_SDK2/toolchain2/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/6.4.0/real-ld: cannot find crtend.o: No such file or directory
/home/developer/yocto_SDK2/toolchain2/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/6.4.0/real-ld: cannot find crtn.o: No such file or directory

我也手动配置了路径,没问题。 [![在此处输入图片描述][1]][1] enter image description here

有谁知道如何解决 gcc 编译器的这个问题?

最佳答案

所以在研究、尝试并失败所有可能的选项之后,我找到了我的答案如下: 显然 Clion 无法检测到编译器,除非我在启动 Clion 之前 sourcecmake,因此它可以重定向编译器到 Yocto 编译器,而不是检测主机编译器。 因此,我创建了以下 Bash 脚本来启动上述命令。

采购 setup_sdk 如下:

#!/bin/bash

# define root paths
export SDK_TC_ROOT=~/yocto_sdk/toolchain
# source yocto sdk stuff
source ${SDK_TC_ROOT}/environment-setup-cortexa9hf-neon-poky-linux-gnueabi

然后,我运行了以下 bash 代码以确保设置在启动 Clion

之前正确运行
#!/bin/bash

PATH_TO_Clion=~/clion/bin
# setup env
source setup_sdk
cmake ./
# start Clion with all variables
$PATH_TO_Clion/clion.sh

然后 Clion 自动正确检测编译器,而无需手动定义它们,这导致了上述 C 编译器 问题。

值得一提的是,在 CMAKE_TOOLCHAIN_FILE=< 中定义 Cmake 选项 时,Clion 以某种方式不接受 - 参数。因为它为我正确编译和构建。 enter image description here

关于c++ - 无法编译我的旧项目(使用 gcc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51258187/

相关文章:

java - 如何正确设置 CTabItem 的边框样式

eclipse - 如何在 Spring Web 应用程序中添加 OpenCV 库

makefile - 在 CMake 中获取 CMAKE_CURRENT_SOURCE_DIR 上面的目录

c++ - 无法使用 cmake 使 QPrinter 链接

c++ - "-Wl,--no-undefined -Wl,--no-allow-shlib-undefined"链接错误

c++ - 指向模板类的指针的容器

c++ - 原子 vector 完全线程安全?

eclipse - Ctrl 按钮在 Eclipse 中不起作用

c++ - 更改当前的 cmake 生成器

c++ - constexpr、static_assert 和内联