Cmake ExternalProject_Add с TaglibC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Cmake ExternalProject_Add с Taglib

Сообщение Anonymous »

Я пытаюсь связать Taglib с моим проектом Cmake, используя ExternalProject_Add (), чтобы пользователям моей программы было легче создавать и запустить, но я изо всех сил пытаюсь заставить библиотеку ссылку < /p>
ExternalProject_Add(
taglib
GIT_REPOSITORY https://github.com/taglib/taglib.git
GIT_TAG v2.0.2 # Specify the version or branch you want to use
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/taglib-install
-DCMAKE_BUILD_TYPE=Debug
-DBUILD_SHARED_LIBS=ON
-DWITH_ZLIB=OFF
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config Debug
INSTALL_COMMAND ${CMAKE_COMMAND} --install . --config Debug
)

set(TagLib_DIR ${CMAKE_BINARY_DIR}/taglib-install)
find_package(TagLib REQUIRED)
< /code>
А потом я ссылаюсь здесь < /p>
add_dependencies(appcplayer taglib)
link_directories(appcplayer PRIVATE ${TAGLIB_INSTALL_DIR}/lib)

if(WIN32)

#target_compile_definitions(appcplayer PRIVATE TAGLIB_STATIC)
target_link_libraries(appcplayer
PRIVATE Qt6::Quick Qt6::Multimedia Qt6::Widgets Qt6::Core
rapidfuzz::rapidfuzz TagLib::tag
)

elseif(UNIX)
target_link_libraries(appcplayer
PRIVATE Qt6::Quick Qt6::Multimedia Qt6::Widgets Qt6::Core TagLib::tag
rapidfuzz::rapidfuzz
)

endif()

target_include_directories(appcplayer PRIVATE
#${TAGLIB_INSTALL_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}/cpp
${CMAKE_CURRENT_SOURCE_DIR}/cpp/types
${CMAKE_CURRENT_SOURCE_DIR}/cpp/background
${CMAKE_CURRENT_SOURCE_DIR}/cpp/cpp_models
${CMAKE_CURRENT_SOURCE_DIR}/cpp/image_providers
${CMAKE_CURRENT_SOURCE_DIR}/cpp/models
${CMAKE_CURRENT_SOURCE_DIR}/cpp/models/song
${CMAKE_CURRENT_SOURCE_DIR}/cpp/models/album
${CMAKE_CURRENT_SOURCE_DIR}/cpp/models/playlist
< /code>
Моя программа удается правильно найти каталог, но не может ссылаться на библиотеку, вот ошибка < /p>
musicscanner.cpp.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl TagLib::ByteVector::~ByteVector(void)" (__imp_??1ByteVector@TagLib@@QEAA@XZ) referenced in function "public: void __cdecl MusicScanner::onFileRecieved(class QString const &)" (?onFileRecieved@MusicScanner@@QEAAXAEBVQString@@@Z)
musicscanner.cpp.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: char * __cdecl TagLib::ByteVector::data(void)" (__imp_?data@ByteVector@TagLib@@QEAAPEADXZ) referenced in function "public: void __cdecl MusicScanner::onFileRecieved(class QString const &)" (?onFileRecieved@MusicScanner@@QEAAXAEBVQString@@@Z)
musicscanner.cpp.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: unsigned int __cdecl TagLib::ByteVector::size(void)const " (__imp_?size@ByteVector@TagLib@@QEBAIXZ) referenced in function "public: void __cdecl MusicScanner::onFileRecieved(class QString const &)" (?onFileRecieved@MusicScanner@@QEAAXAEBVQString@@@Z)
musicscanner.cpp.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl TagLib::String::String(class TagLib::String const &)" (__imp_??0String@TagLib@@QEAA@AEBV01@@Z) referenced in function "public: static void __cdecl std::_Default_allocator_traits::construct(class std::allocator &,class TagLib::String * const,class TagLib::String const &)" (??$construct@VString@TagLib@@AEBV12@@?$_Default_allocator_traits@V?$allocator@U?$_List_node@VString@TagLib@@PEAX@std@@@std@@@std@@SAXAEAV?$allocator@U?$_List_node@VString@TagLib@@PEAX@std@@@1@QEAVString@TagLib@@AEBV34@@Z)
musicscanner.cpp.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl TagLib::String::String(char const *,enum TagLib::String::Type)" (__imp_??0String@TagLib@@QEAA@PEBDW4Type@01@@Z) referenced in function "public: void __cdecl MusicScanner::onFileRecieved(class QString const &)" (?onFileRecieved@MusicScanner@@QEAAXAEBVQString@@@Z)
musicscanner.cpp.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl TagLib::String::~String(void)" (__imp_??1String@TagLib@@QEAA@XZ) referenced in function "public: void __cdecl MusicScanner::onFileRecieved(class QString const &)" (?onFileRecieved@MusicScanner@@QEAAXAEBVQString@@@Z)


Подробнее здесь: https://stackoverflow.com/questions/793 ... ith-taglib
Ответить

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

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

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

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

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