如何使用CMake将我的库与czmq链接
在使用CMake时,我很难找到链接czmq库的方法。我可以使用czmq库和如何使用CMake将我的库与czmq链接,c,linux,cmake,zeromq,C,Linux,Cmake,Zeromq,在使用CMake时,我很难找到链接czmq库的方法。我可以使用czmq库和gcc myprog.c-lczmq很好地编译代码 我的项目结构如下所示: src/... include/... build/... CMakeLists.txt cmake_minimum_required(VERSION 3.10) project(mylib) set(CMAKE_BUILD_TYPE Release) #Header include_directories(include) #Src fi
gcc myprog.c-lczmq
很好地编译代码
我的项目结构如下所示:
src/...
include/...
build/...
CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(mylib)
set(CMAKE_BUILD_TYPE Release)
#Header
include_directories(include)
#Src files, GLOB allows for wildcard additions
file(GLOB SOURCES "src/*c")
#Generate the shared library from the sources
add_library(mylib SHARED ${SOURCES})
#Set location for the library installation
install(TARGETS mylib DESTINATION .)
src/
文件夹包含.c
文件和相应的.h
文件。include/
文件夹包含库标题
我当前的CmakeLists.txt
如下所示:
src/...
include/...
build/...
CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(mylib)
set(CMAKE_BUILD_TYPE Release)
#Header
include_directories(include)
#Src files, GLOB allows for wildcard additions
file(GLOB SOURCES "src/*c")
#Generate the shared library from the sources
add_library(mylib SHARED ${SOURCES})
#Set location for the library installation
install(TARGETS mylib DESTINATION .)
将
CMAKE_EXE_LINKER_标志设置为您希望链接器使用的任何选项:
SET(GCC_LINK_FLAGS "-lczmq")
然后将标志附加到CMake变量:
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COMPILE_FLAGS}")
将CMAKE_EXE_LINKER_标志设置为您希望链接器使用的任何选项:
SET(GCC_LINK_FLAGS "-lczmq")
然后将标志附加到CMake变量:
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COMPILE_FLAGS}")
变量CMAKE_EXE_LINKER_FLAGS
用于-l
标志的位置错误:此变量的内容显示在链接器命令行中的对象文件之前,而-l
标志的正确顺序显示在对象文件之后。应使用命令target\u link\u libraries
而不是CMAKE\u LINKER\u FLAGS
。变量CMAKE\u EXE\u LINKER\u FLAGS
对于-l
标志是一个错误的位置:此变量的内容显示在链接器命令行中的对象文件之前,而-l
标志的正确顺序在对象文件之后。应该使用命令target\u link\u libraries
而不是CMAKE\u EXE\u LINKER\u FLAGS
。该副本没有回答我的问题,因为我在编译使用创建的库的代码时仍然必须添加-lczmq
标志。该副本没有回答我的问题,因为我在编译代码时仍然必须添加-lczmq
标志编译使用创建的库的代码。