cmake为链接器添加前缀

时间:2014-09-27 02:29:31

标签: c++ visual-studio linker cmake bullseye

我知道如何为链接器添加前缀。我需要这个,因为我需要在编译和链接之前添加bullseye编译器和链接器前缀。

SET(CMAKE_CXX_COMPILER "${BULLSEYE_PREFIX_CC} --no-banner ${CMAKE_CXX_COMPILER}")
SET(CMAKE_C_COMPILER "${BULLSEYE_PREFIX_CC} --no-banner ${CMAKE_C_COMPILER}")

我似乎无法找到类似的链接器。有什么指针吗?

谢谢, 尼克

这些是我的编译器和链接器前缀的值。编译器工作正常并生成cov文件。但是,链接器似乎没有生成可执行文件。它编译文件并构建可执行文件,然后它说它的链接和失败。不知道发生了什么:(

C:/src/sw/tools/Bullseye/win32/8.7.33/BullseyeCoverage/bin/covc.exe C:/src/sw/to
ols/win32/msvc110/VC/bin/cl.exe
C:/src/sw/tools/Bullseye/win32/8.7.33/BullseyeCoverage/bin/covlink.exe <CMAKE_CO
MMAND> -E vs_link_exe <CMAKE_CXX_COMPILER> /nologo <OBJECTS> @<<
 <FLAGS> /Fe<TARGET> /Fd<TARGET_PDB> -link /implib:<TARGET_IMPLIB> /version:<TAR
GET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <L
INK_LIBRARIES>
<<

1 个答案:

答案 0 :(得分:1)

使用CMAKE_CXX_LINK_EXECUTABLE

set(CMAKE_CXX_LINK_EXECUTABLE "${BULLSEYE_PREFIX_CC} ${CMAKE_CXX_LINK_EXECUTABLE}")

请注意,它不仅仅是链接器的路径,还有标志和变量,例如for cygwin CMAKE_CXX_LINK_EXECUTABLE是:

<CMAKE_CXX_COMPILER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> -Wl,--out-implib,<TARGET_IMPLIB> -Wl,--major-image-version,<TARGET_VERSION_MAJOR>,--minor-image-version,<TARGET_VERSION_MINOR> <LINK_LIBRARIES>

注意

这会添加前缀,但您应该谨慎使用。我建议使用message命令打印,看看结果是你想要的。此变量不易自定义,因此您可能必须在cmake中执行一些字符串处理。