Код: Выделить всё
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
Мобильная версия