gpt4 book ai didi

c++ - 与 CMake 链接的 C/C++ 库

转载 作者:可可西里 更新时间:2023-11-01 09:20:16 25 4
gpt4 key购买 nike

我需要在 C++ 项目中使用 MongoDB C 驱动程序。我想使用 CMake,因为我使用的 IDE 与它很好地集成,但编译器无法识别 MongoDB 驱动程序

因此,我尝试了更多的方法并为您提供了更多信息。我制作了以下脚本:

cmake_minimum_required(VERSION 3.2)
project(sorting)

set(ENV{PKG_CONFIG_PATH} "/usr/lib64")
find_package(PkgConfig REQUIRED)

pkg_search_module(MONGO REQUIRED mongoc-1.0)


message(SEND_ERROR "A ${MONGO_FOUND}") # Error:A 1
message(SEND_ERROR "B ${MONGO_LIBRARIES}") # Error:B ssl;crypto;rt;mongoc-1.0;bson-1.0
message(SEND_ERROR "C ${MONGO_LIBRARY_DIRS}") # Error:C /usr/lib64
message(SEND_ERROR "D ${MONGO_LDFLAGS}") # Error:D -L/usr/lib64;-lssl;-lcrypto;-lrt;-lmongoc-1.0;-lbson-1.0
message(SEND_ERROR "E ${MONGO_LDFLAGS_OTHER}")# Error:E
message(SEND_ERROR "F ${MONGO_INCLUDE_DIRS}") # Error:F /usr/include/libmongoc-1.0;/usr/include/libbson-1.0
message(SEND_ERROR "G ${MONGO_CFLAGS}") # Error:G -I/usr/include/libmongoc-1.0;-I/usr/include/libbson-1.0
message(SEND_ERROR "H ${MONGO_CFLAGS_OTHER}") # Error:H


include_directories(${MONGO_LIBRARY_DIRS})
include_directories(${MONGO_INCLUDE_DIRS})

#link_directories(${MONGO_LIBRARY_DIRS})
#link_directories(${MONGO_INCLUDE_DIRS})


set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)

add_executable(sorting ${SOURCE_FILES})
target_link_libraries(sorting ${MONGO_LIBRARIES})

当我删除所有 message()从我的 cmake 文件中获取函数并尝试使用 include_directories 构建运行项目未注释我收到此错误:

error while loading shared libraries: libmongoc-1.0.so.0: cannot open shared object file: No such file or directory

当我评论 include_directories并取消注释 link_directories我收到这个错误:

fatal error: mongoc.h: No such file or directory
#include <mongoc.h>

此外,出于好奇,如果我更改名称 MONGO 为什么会这样?在pkg_search_module类似于 MONGODBMONG我收到这个错误:

Error:None of the required 'mongoc-1.0' found

最佳答案

你需要告诉cmake链接到monog库,这是通过

TARGET_LINK_LIBRARIES

命令,在您的特定情况下,它会紧跟在 ADD_EXECUTABLE 命令之后,就像

TARGET_LINK_LIBRARIES(sorting ${MONGO_DB_LIBRARIES})

还有,你的PKG_SEARCH_MODULE好像不对,看来应该是

PKG_SEARCH_MODULE(MONGO_DB REQUIRED libmongoc-1.0)

关于c++ - 与 CMake 链接的 C/C++ 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30881925/

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