c - 将静态库 czmq 添加到 C 项目 (CMake)
问题描述
我正在使用 ZeroMQ 库用 C 语言编写一个项目。我需要使用静态库。CMakeLists.txt:
cmake_minimum_required(VERSION 3.17)
project(client C CXX)
set(CMAKE_C_STANDARD 99)
find_library(czmq_location NAMES libczmq.a)
message(STATUS ${czmq_location})
add_library(czmq STATIC IMPORTED)
set_target_properties(czmq PROPERTIES IMPORTED_LOCATION ${czmq_location})
add_executable(client client.c ft_lib_c/clib.c ft_lib_c/clib.h ft_lib_c/itoa.c ft_lib_c/itoa.h)
target_link_libraries(client czmq )
但是,在构建时,我收到很多错误-_-:
CMakeFiles/client.dir/client.c.o: In function `main':
/home/neleps/MMS_radar_projects/master/client/client.c:18: undefined reference to `zmq_ctx_new'
/home/neleps/MMS_radar_projects/master/client/client.c:20: undefined reference to `zmq_socket'
/home/neleps/MMS_radar_projects/master/client/client.c:22: undefined reference to `zmq_connect'
....
也就是说,库中的函数是不可见的。我究竟做错了什么?
预先感谢您的帮助 :)
解决方案
推荐阅读
- mysql - 从多个文本框中记录用户输入并放入 MySQL
- java - MongoDB - 删除 100 万条记录需要很长时间
- c++ - 当来自 UI 的事件委托给 GRAPS 控制器时,哪个类应该更新 UI?
- python - 如何正确构建字典并访问其元素?
- bash - Airflow - 如何在 Bash Operator 的 bash 命令中获取 Airflow 变量?
- c# - 实现 A* 寻路 Unity3D 的问题
- mysql - MySQL 整数列,其中包含唯一值,但默认值为 2(非 NULL)?是否可以?
- html - 如何设置嵌套元素的样式?
- android - Jetpack Compose 有没有办法为修饰符的 contentDescription 属性检索字符串资源的真实字符串值?
- node.js - 在 AWS Aurora postgresql 数据库中更新表后,无法立即在 AWS Lambda 中获取最新更新的数据