但需要注意对 -L目录进行调整,同时可以去掉一些你不需要的 链接选项 添加到上述g++ test.cpp -static `pkg-config opencv --cflags --libs`后面,果然把需要的依赖库都加进来了,但是此时仍然可能在你的环境下出现错误,因为你可能在本地没有安装过上述的依赖库。上述的依赖库一部分是集成在opencv里面,在安装时就编...
# pkgconfig support IF (NOT CARES_SHARED) FOREACH (LIB ${CARES_DEPENDENT_LIBS}) SET (CARES_PRIVATE_LIBS "${CARES_PRIVATE_LIBS} -l${LIB}") ENDFOREACH () ENDIF () # pkgconfig support for static builds FOREACH (LIB ${CARES_DEPENDENT_LIBS}) SET (CARES_PRIVATE_LIBS "${CARES_PRIVATE...
具体用法如下例,向lib/CMakeListst.txt 中添加: GET_TARGET_PROPERTY(OUTPUT_VALUEhello_staticOUTPUT_NAME)MESSAGE(STATUS"This is the hello_static OUTPUT_NAME:"${OUTPUT_VALUE}) 如果没有这个属性定义,则返回NOTFOUND。 构建结果会发现,libhello.a 已经构建完成,位于 build/lib 目录中,但是libhello.so 去消...
pkg_check_modules(confuse REQUIRED libconfuse) 这行代码告诉CMake使用pkg-config来查找libconfuse库,并设置包含目录和链接库。如果找到了库,confuse_INCLUDE_DIRS和confuse_LIBRARIES变量将被设置,以便后续使用。你可以在项目中使用这些变量来包含头文件和链接库文件。 pkg_check_modules的优势在于它能够直接从库的.pc文...
# 只需要填写hello即可,cmake系统会自动为你生成 libhello_static.X ADD_LIBRARY (hello_static STATIC ${LIBHELLO_SRC}) # 按照一般的习惯,静态库名字跟动态库名字应该是一致的,只是扩展名不同; #即:静态库名为 libhello.a; 动态库名为 ; # 所以,希望 "hello_static" 在输出时,不是"hello_static",而...
如编译条件检查、编译器定义、平台判断、如何跟pkgconfig配合使用等等。“ 到这里,或许你可以理解前面讲到的cmake的使用过程其实就是学习cmake语言并编写 cmake ”“ 程序的过程,既然是cmake ” 语言,自然涉及到变量、语法等. 下一节,我们将抛开程序的话题,看看常用的CMAKE变量以及一些基本的控制语法规则。 七,c...
_PKG_CONFIG_LIBNAMES}) message("CMAKE_PKG_CONFIG_LINK_OPTIONS = " ${CMAKE_PKG_CONFIG_LINK_OPTIONS}) # message("CMAKE_PKG_CONFIG_*_PRIVATE = " ${CMAKE_PKG_CONFIG_*_PRIVATE}) # 从 CFLAGS LIBS REQUIRES 派生的变量内容 message("CMAKE_PKG_CONFIG_LIBS_PRIVATE = " ${CMAKE_PKG_CONFIG...
target_link_libraries(message-static PUBLIC $<$<BOOL:${UUID_FOUND}>:PkgConfig::UUID> ) 我们还为message-static目标设置了属性。这些将在下一节中讨论: 代码语言:javascript 复制 set_target_properties(message-static PROPERTIES POSITION_INDEPENDENT_CODE 1 ...
使用FindPkgConfig0发现遗留包 编写自己的 find-modules 与Git 仓库协作 使用ExternalProject和FetchContent模块 技术要求 你可以在这个章节中找到的代码文件在 GitHub 上,地址为github.com/PacktPublishing/Modern-CMake-for-Cpp/tree/main/examples/chapter07。 为了构建本书中提供的示例,总是使用推荐的命令: 代码语...
存在下列的2个系列值;第⼀个系列是常⽤的并且以给出的 PREFIX 开始。第⼆个系列在当 pkg-config 被调⽤时带有 --static 选项时,包含给出的符号。<XPREFIX>_FOUND ... set to 1 if module(s) exist <XPREFIX>_LIBRARIES ... only the libraries (w/o the '-l')<XPREFIX>_LIBRARY_...