2013-04-09 87 views
2

我想在编译器前加上一个实用程序脚本,所以不用调用例如g++-4.7 main.cpp,kinst-ompp g++-4.7 main.cpp如何前缀CMake编译器?

我试图在的CMakeLists.txt这样做,但我得到一个“未找到”错误:

set(CMAKE_CXX_COMPILER "${OMPP_CXX} ${CMAKE_CXX_COMPILER}") 
set(CMAKE_C_COMPILER "${OMPP_CC} ${CMAKE_C_COMPILER}") 

如何正确配置此使用CMake的?

+0

如果您使用Makefile生成器,请在运行cmake后尝试运行'VERBOSE = 1 make'。这样,你就可以看到确切地调用哪些命令 - 也许它有助于调试问题。 – 2013-04-09 16:57:59

回答

0

我得到这个由我的编译器设置为前缀,然后通过真实的编译器的名称作为第一个参数来工作。丑,我知道。

set(CMAKE_CXX_COMPILER "${OMPP_CXX}") 
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_COMPILER} ${commonCXXFlags} ${commonReleaseFlags}") 
+0

只有某些CMAKE脚本不是通过某种东西(例如预处理器定义)为CMAKE_CXX_FLAGS_RELEASE添加前缀时才起作用(如预处理器定义)。如果发生这种情况,编译期间将出现无法解读的错误。弗雷泽的回答下面为我工作。 – Sameer 2015-06-05 21:40:34

1

您应该避免以这种方式设置编译器 - 有关更多信息,请参阅cmake: problems specifying the compiler (2)CMake FAQ entry

我认为有以下应工作(删除您CMakeCache.txt后):

export CC="kinst-ompp gcc-4.7" CXX="kinst-ompp g++-4.7" cmake <Path to CMakeLists.txt> 
+0

这会导致错误“在环境变量CC中无法找到编译器集合”... – user1101674 2013-04-10 09:20:40