Я пытаюсь создать статическую библиотеку, например my_lib.a
. Эта библиотека в зависимости от кода gSoap - file2.cpp.o
, который генерируется из-за этой инструкции CMake (и 2 пользовательских команд):Как сообщить CMake при использовании add_library, чтобы не включать конкретный файл объекта
add_library(${TARGET_NAME} ${SRC_FILES}
${GENERATED_SRC_FILES} ${GENERATED_H_FILES} ${GENERATED_RES_FILES})
file2.cpp
присутствует в GENERATED_SRC_FILES
. Все работает нормально до момента соединения.
/USR/бен/ар кр ../lib/my_lib.a CMakeFiles/my_lib.dir/SRC/file1.cpp.o CMakeFiles/my_lib.dir/SRC/file2.cpp.o
Если я позволю сделать, чтобы использовать эту команду, библиотека my_lib.a
будет содержать file1.cpp.o
и file2.cpp.o
. Но на самом деле мне не нужен file2.cpp.o
в моей * .a библиотеке.
Кто-нибудь знает, как мне управлять этим случаем, чтобы получить my_lib.a
, который содержит только file1.cpp.o
?
Я хотел бы написать макрос, который удаляет '' file2.cpp' от $ {GENERATED_SRC_FILES} ' – drescherjm
Или может быть просто список (REMOVE_ITEM GENERATED_SRC_FILES file2.cpp) – drescherjm
Спасибо за идеи! :) Я попытался использовать «список (..)» непосредственно перед вызовом add_library(), но он не влияет на состояние связывания ... Что вы подразумеваете под созданием макроса? Когда я проверяю содержимое GENERATED_SRC_FILES, он содержит файлы .cpp/.c, но не файлы объектов * .o. Это означает, что для меня, что ссылка является полностью другой процедурой ... – Anton