我知道如何向链接器添加前缀。我需要这个,因为我需要在编译和链接之前添加牛眼编译器和链接器前缀。
SET(CMAKE_CXX_COMPILER "${BULLSEYE_PREFIX_CC} --no-banner ${CMAKE_CXX_COMPILER}")
SET(CMAKE_C_COMPILER "${BULLSEYE_PREFIX_CC} --no-banner ${CMAKE_C_COMPILER}")
我似乎找不到类似的链接器。有指针吗?
谢谢,Nick
这些是我的编译器和链接器前缀的值。编译器运行良好并生成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>
<<
使用CMAKE_CXX_LINK_EXECUTABLE:
set(CMAKE_CXX_LINK_EXECUTABLE "${BULLSEYE_PREFIX_CC} ${CMAKE_CXX_LINK_EXECUTABLE}")
请注意,它不仅是链接器的路径,还包括标志和变量,例如,对于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中进行一些字符串处理。