J'ai tenté de résoudre ce problème, mais finalement j'ai abandonné et je ne peux pas le comprendre. J'utilise CLion et j'ai besoin d'importer une bibliothèque partagée externe (ts3client.so). Quoi que je fasse, il échoue d'une manière ou d'une autre.Aucune règle pour makefile cible lors de l'utilisation d'une bibliothèque externe
Actuellement, je donne les résultats suivants:
cmake_minimum_required(VERSION 3.8)
project(TSMusicBot)
set(CMAKE_CXX_STANDARD 11)
set(SOURCE_FILES src/main.cpp)
# Teamspeak Libraries
INCLUDE_DIRECTORIES(libs/ts3_sdk_3.0.4/include)
ADD_LIBRARY (libts3client SHARED IMPORTED GLOBAL)
SET_PROPERTY (
TARGET libts3client PROPERTY IMPORTED_LOCATION
libs/ts3_sdk_3.0.4/bin/linux/amd64/libts3client.so)
add_executable(TSMusicBot ${SOURCE_FILES})
target_link_libraries(TSMusicBot libts3client)
Cela me donne l'erreur suivante:
make[2]: *** No rule to make target 'libs/ts3_sdk_3.0.4/bin/linux/amd64/libts3client.so', needed by 'TSMusicBot'. Stop.
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/TSMusicBot.dir/all' failed
make[1]: *** [CMakeFiles/TSMusicBot.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
Ma structure de répertoire est la suivante: src/main.cpp (le code) libs/ts3_sdk_3.0.4/include/teamspeak/(qui contient les en-têtes pour la bibliothèque) libs/ts3_sdk_3.0.4/bin/linux/amd64/libts3client.so (qui est la bibliothèque que je ne peux pas importer).
Essayez d'utiliser un chemin absolu pour libts3client.so et voyez si cela fonctionne. –
@JohnZwinck oui, il a fait son travail. Savez-vous pourquoi c'est le cas? –