Cmake: принуждение типа сборки для конкретной библиотеки не удаетсяC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Cmake: принуждение типа сборки для конкретной библиотеки не удается

Сообщение Anonymous »

У меня есть проект C ++ из нескольких исполняемых файлов и библиотек. Я использую Cmake для компиляции. Также в режиме отладки я добавляю «_d» в качестве постфикса для библиотек (т. Е. Итак, в cmakelists.txt of lib1 я заставляю CMAKE_BUILD_TYPE выпустить: < /p>

Код: Выделить всё

set(CMAKE_BUILD_TYPE "Release")
< /code>
Эта библиотека имеет зависимости (скажем, Lib2). Конечно, Lib2 все еще должен быть составлен в режиме отладки, и его имя должно быть liblib2_d.so (я хочу, чтобы Lib1 был в режиме выпуска). < /P>
К сожалению, при строительстве (в режиме отладки) я получаю следующее сообщение об ошибке: < /p>
[build] make[3]: *** No rule to make target 'binaries/lib/liblib2.so', needed by 'binaries/lib/liblib1_d.so'.  Stop.

Вот файл cmakelists.txt для lib1:

Код: Выделить всё

cmake_minimum_required(VERSION 2.8.9)

if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
project (lib1)
endif()

if (NOT TARGET lib2)
add_subdirectory(../lib2 lib2)
endif()

set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/binaries/lib/)

set(CMAKE_BUILD_TYPE "Release")

include_directories(include)
include_directories(../lib2/include lib2)

add_library(lib1 SHARED src/src1.cpp include/lib1.h)

target_link_libraries(lib1 lib2)
< /code>
Я использую Cmake версию 3.18.4. < /p>
Я также загрузил здесь, образец, который показывает проблему. Просто расстегнете разкапливание и запустите: < /p>
mkdir build && cd build && cmake --configure ../app -DCMAKE_BUILD_TYPE=Debug && cmake --build .

Я не знаю, как решить это. Пожалуйста, не могли бы вы мне помочь?

Подробнее здесь: https://stackoverflow.com/questions/696 ... rary-fails
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»