私はrabbitmq経由で自分のJavaアプリケーションと通信し、twitterに更新情報を投稿するプロジェクトをCppに構築しています。私は、私は別のプロジェクトのためにしばらく前にこれをインストールし CMakeユーザービルドライブラリ。ターゲットのリンクライブラリを指定できません
-
をいくつかのライブラリを使用しています/ usr/local/libに行きました
twitcurl - C lib for Twitter API
それが重要ならば、私は含んで定義する際にオートコンプリートの下ヤンソンとウサギを表示する私のIDEとしてCLionを使用してい
e.g.
#include <jansson.h>
#include <amqp.h>
私はtarget_link_libraries(名前LIBSを...)を使用して、それらをリンクし、私は出力が
build$ cmake ..
CMake Error at CMakeLists.txt:30 (target_link_libraries):
Cannot specify link libraries for target "twitcurl" which is not built by
this project.
を言って見ます
私はusr/local/libディレクトリとlib64にを含めるようにCMAKE_LIBRARY_PATHを設定するのではなく、任意の効果を持っていないようですしてみてくださいLD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64
を設定します。ここに私のCMakeLists.txtファイルには、私を混乱させているもの
#
# This is a CMake makefile. You can find the cmake utility and
# information about it at http://www.cmake.org
#
cmake_minimum_required(VERSION 2.6)
set(PROJECT_NAME twitterUpdater)
set(SOURCE_FILES main.cpp)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "/usr/local/lib"
"/usr/local/lib64")
project(${PROJECT_NAME})
find_package(X11 REQUIRED)
find_package(OpenCV REQUIRED)
IF (X11_FOUND)
INCLUDE_DIRECTORIES(${X11_INCLUDE_DIR})
LINK_LIBRARIES(${X11_LIBRARIES})
ENDIF (X11_FOUND)
IF (OpenCV_FOUND)
include_directories(${OpenCV_INCLUDE_DIRS})
link_libraries(${OpenCV_LIBS})
ENDIF(OpenCV_FOUND)
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
target_link_libraries(${project_name} twitcurl jansson rabbitmq)
だ私が持っている別のプロジェクトは、単にここTARGET_LINK_LIBRARIES(${project_name} dlib jansson)
それを追加することにより、ヤンソンを使用している私は何を逃しました?ありがとう
うわー、遅いです。私の怠惰を指摘してくれてありがとう。 – Crushing