gpt4 book ai didi

c++ - cmake 和默认编译器

转载 作者:太空狗 更新时间:2023-10-29 23:52:32 28 4
gpt4 key购买 nike

我最近将我的 OS X 更新为 Mountain Lion。不幸的是,FreeBSD 切换到不支持我需要的 OpenMP 的编译器套件 (llvm/clang),Apple 将该套件设置为默认编译工具。

幸运的是,OS X 10.8 包含一个旧的 gcc 4.2 编译器,它仍然可以用于一些遗留代码。

我使用 cmake (v2.8) 构建程序。为了使用gcc编译器,我首先尝试在CMakeLists.txt脚本中设置两个变量。更具体地说,我设置了 CMAKE_C_COMPILERCMAKE_CXX_COMPILER。但是,设置这两个变量没有任何效果:cmake 继续使用不支持 OpenMP 的 llvm 编译器。

然后我尝试设置两个环境变量,CCCXX(在 .profile/.bashrc 脚本中),指向用于 CMake 变量的相同编译器.通过使用这两个变量,我能够编译我的源代码。

我的问题是:两个 CMake 变量 (CMAKE_..._COMPILER) 有什么意义?我应该如何使用它们?

谢谢。

最佳答案

这些变量确实可以使用,但是必须在编译器自动检测到之前设置它们。您通常使用命令行或缓存初始化脚本来执行此操作:

# by setting CC anc CXX
CC=gcc-4.2 CXX=g++-4.2 cmake ...

# by passing the definitions of CMAKE_{C,CXX}_COMPILER to cmake directly
cmake -DCMAKE_C_COMPILER:FILEPATH=`which gcc-4.2` -DCMAKE_CXX_COMPILER:FILEPATH=`which g++-4.2` ...

# by passing a cache-initialization script
cmake -C init_cache.cmake

文件 init_cache.cmake 包含类似的内容

set(CMAKE_C_COMPILER CACHE FILEPATH /usr/bin/gcc-4.2)
set(CMAKE_CXX_COMPILER CACHE FILEPATH /usr/bin/g++-4.2)

关于c++ - cmake 和默认编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15291978/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com