我想检查我的 C++ 项目是否在旧版本的 GCC 上编译。出于这个原因,我安装了旧版本并希望 CMake 使用它来编译我的项目。
关于更改编译器的 CMake FAQ告诉我这是正确的方法:
CC=gcc-4.4 CXX=g++-4.4 cmake -G "Unix Makefiles" ..
所以这就是我输入的内容,CMake 似乎运行良好:
chris@chris-machine:~/projects/myProject/build$ CC=gcc-4.4 CXX=g++-4.4 cmake -G "Unix Makefiles" .. -- 找到 PythonInterp:/usr/bin/python(找到版本“2.7.4”) -- 寻找包含文件 pthread.h -- 寻找包含文件 pthread.h - 找到 -- 寻找 pthread_create -- 寻找 pthread_create - 未找到 -- 在 pthreads 中寻找 pthread_create -- 在 pthreads 中寻找 pthread_create - 未找到 -- 在 pthread 中寻找 pthread_create -- 在 pthread 中寻找 pthread_create - 找到 -- 找到的线程:TRUE -- 配置完成 -- 生成完成 -- 构建文件已写入:/home/chris/projects/myProject/build
但是,现在查看 CMakeCache.txt 我发现:
//CXX 编译器。 CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
显然 CMake 没有使用我指定的编译器。当我将此行更改为使用 g++-4.4 并再次运行 CMake 时,它将创建一个无限循环:
chris@chris-machine:~/projects/myProject/build$ CC=gcc-4.4 CXX=g++-4.4 cmake -G "Unix Makefiles" .. -- 配置完成 您更改了需要删除缓存的变量。 配置将重新运行,您可能需要重置一些变量。 以下变量已更改: CMAKE_CXX_COMPILER= /usr/bin/g++-4.4 -- 找到 PythonInterp:/usr/bin/python(找到版本“2.7.4”) -- 寻找包含文件 pthread.h -- 寻找包含文件 pthread.h - 找到 -- 寻找 pthread_create -- 寻找 pthread_create - 未找到 -- 在 pthreads 中寻找 pthread_create -- 在 pthreads 中寻找 pthread_create - 未找到 -- 在 pthread 中寻找 pthread_create -- 在 pthread 中寻找 pthread_create - 找到 -- 找到的线程:TRUE -- 配置完成 您更改了需要删除缓存的变量。 配置将重新运行,您可能需要重置一些变量。 以下变量已更改: CMAKE_CXX_COMPILER= /usr/bin/g++-4.4 -- 找到 PythonInterp:/usr/bin/python(找到版本“2.7.4”) // 等等...
为什么 CMake 不使用我指定的编译器,我该如何解决这个问题?