gpt4 book ai didi

c++ - CMake 用户构建的库;无法为目标指定链接库

转载 作者:搜寻专家 更新时间:2023-10-31 02:16:51 24 4
gpt4 key购买 nike

我正在 Cpp 中构建一个项目,它将通过 rabbitmq 与我的 Java 应用程序通信并将更新发布到 twitter。我正在使用来自 github 的一些库

  1. rabbitmq-c

    Rabbit 安装到/usr/local/lib64

  2. jansson - json library

    我前一段时间为另一个项目安装了这个,去了/usr/local/lib

  3. twitcurl - C lib for Twitter API

    安装到/usr/local/lib

如果重要的话,我使用 CLion 作为我的 IDE,它在定义包含时在自动完成下显示 jansson 和 rabbit - 这样就以某种方式从我的系统中挑选了库

e.g.
#include <jansson.h>
#include <amqp.h>

我使用 target_link_libraries(name 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.

我设置了 LD_LIBRARY_PATH

export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64

我尝试将 CMAKE_LIBRARY_PATH 设置为包含 usr/local/lib 和 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)

让我感到困惑的是我使用 jansson 的另一个项目,只需在此处添加它 TARGET_LINK_LIBRARIES(${project_name} dlib jansson)

我错过了什么??谢谢

最佳答案

CMake 变量区分大小写,因此变量 ${project_name} 会产生一个空字符串。请改用 ${PROJECT_NAME},即:

target_link_libraries(${PROJECT_NAME} twitcurl jansson rabbitmq)

使用标志 --warn-uninitialized 运行 CMake 可帮助您检测此类错误。

关于c++ - CMake 用户构建的库;无法为目标指定链接库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36483093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com