cmake добавляет префикс к компоновщику
Я знаю, как добавить префикс к компоновщику. Мне это нужно, потому что мне нужно добавить префиксы компилятора и компоновщика перед тем, как компилировать и связывать.
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 ответ
Используйте 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>
Заметка
Это добавит префикс, но вы должны быть осторожны. Я бы предложил распечатать с помощью команды сообщения и посмотреть, что результат, что вы хотите. Эта переменная не легко настраивается, поэтому вам может потребоваться выполнить некоторую обработку строк в cmake.