0

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

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>
<<
4

1 回答 1

1

使用CMAKE_CXX_LINK_EXECUTABLE

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

请注意,它不仅是链接器的路径,还有标志和变量,例如对于 cygwinCMAKE_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>

笔记

这将添加前缀,但您应该谨慎使用。我建议使用消息命令打印,看看结果是你想要的。这个变量不容易定制,所以你可能需要在 cmake 中做一些字符串处理。

于 2014-09-27T13:51:30.603 回答