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

0

Решение

использование 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.

1

Другие решения


А ты уже прошел курс программирования? Супер скидка!
Прокачать скилл $$$
×