无法在英特尔Mac上的CLion中将C++编译器设置为GCC

egdjgwm8  于 2023-06-06  发布在  Mac
关注(0)|答案(1)|浏览(252)

我正在我的Mac上使用CLion作为IDE进行C项目,因此我开始使用Apple clang编译器,cmake作为构建工具,ninja作为生成器。现在我想使用更多的并行性,特别是执行策略,clang编译器不支持这些。我已经安装了一个GCC版本(12.2.0),并希望使用它。
尝试将C
编译器设置为-D CMAKE_CXX_COMPILER=/usr/local/Cellar/gcc/12.2.0/bin/g++-12标志不起作用,在工具链中指定GCC编译器的路径也不起作用(都是在CLion的GUI中,在Build,Execution,Deployment > Toolchains/CMake下完成的,如建议的here)。我指定了整个路径,尽管我为gcc/g++生成了指向GCC而不是Apple clang编译器的符号链接。
我总是得到错误,编译器无法编译一个简单的测试程序,而且,编译器标识是未知的,可能会被破坏。

-- The C compiler identification is AppleClang 14.0.3.14030022
-- The CXX compiler identification is unknown
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - failed
-- Check for working CXX compiler: /usr/local/Cellar/gcc/12.2.0/bin/g++-12
-- Check for working CXX compiler: /usr/local/Cellar/gcc/12.2.0/bin/g++-12 - broken
CMake Error at /Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.25/Modules/CMakeTestCXXCompiler.cmake:63 (message):
  The C++ compiler

    "/usr/local/Cellar/gcc/12.2.0/bin/g++-12"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /Users/xy/CLionProjects/MasterThesis/QASM-Parser/cmake-build-debug-gcc/CMakeFiles/CMakeScratch/TryCompile-rKisQk
    
    Run Build Command(s):/Applications/CLion.app/Contents/bin/ninja/mac/ninja cmTC_ff5c4 && [1/2] Building CXX object CMakeFiles/cmTC_ff5c4.dir/testCXXCompiler.cxx.o
    FAILED: CMakeFiles/cmTC_ff5c4.dir/testCXXCompiler.cxx.o 
    /usr/local/Cellar/gcc/12.2.0/bin/g++-12    -o CMakeFiles/cmTC_ff5c4.dir/testCXXCompiler.cxx.o -c /Users/cedricgaberle/CLionProjects/MasterThesis/QASM-Parser/cmake-build-debug-gcc/CMakeFiles/CMakeScratch/TryCompile-rKisQk/testCXXCompiler.cxx
    /usr/local/bin/clang: /usr/local/bin/clang: cannot execute binary file
    ninja: build stopped: subcommand failed.
    
    

  

  CMake will not be able to correctly generate this project.

看起来,clang仍在尝试执行二进制文件,这可能是问题的根源。有什么办法解决这个问题吗?
实际上应该没有问题,在终端中使用GCC构建和执行项目工作得非常好。
任何帮助是赞赏,谢谢!

lnlaulya

lnlaulya1#

经过几天的故障排除与JetBrains的支持,这一切都归结为一些环境问题。我使用conda作为环境管理器,它会自动启动一个所谓的base environment。我有一个变通方法来在终端中停用它,但它仍然设置在CLion中。这最终导致无法找到GCC编译器的问题。

**简而言之:**conda为disable this behaviour提供了一个配置。然后CLion也不会激活conda,环境问题以及最终的编译器问题都得到了解决。

相关问题