この問題のトラブルシューティングを試みましたが、結局私はあきらめてしまいました。外部ライブラリを使用しているときにターゲットメイクファイルを作成するルールがありません
私はCLionを使用しており、外部共有ライブラリ(ts3client.so)をインポートする必要があります。私が何をしても、それは何らかの形で失敗します。
現在、私は次のようしている:
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)
をこれは私に次のエラーを与える:
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
私のディレクトリ構造は以下の通りです:/ main.cppに SRC(コード) libs/ts3_sdk_3.0.4/include/teamspeak /(ライブラリのヘッダーを含む) libs/ts3_sdk_3.0.4/bin/linux/amd64/libts3client.so(インポートできないライブラリ)。
libts3client.soの絶対パスを使用して、それが機能するかどうかを確認してください。 –
@JohnZwinckはい、それは動作させました。なぜそれが事実であるか知っていますか? –