You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CMake中使用pkg-config调用uSockets库提示‘library uSockets not found’求助

解决CMake中pkg-config找不到uSockets库的问题
  • 修复.pc文件的Libs字段格式错误
    你的uSockets.pc里Libs: -L${libdir} -l uSockets存在格式问题:-l和库名之间不能有空格,链接器会把空格后的uSockets当成普通文件名而非库名。修改为:

    Libs: -L${libdir} -luSockets
    
  • 让pkg-config定位到你的.pc文件
    pkg-config默认只搜索系统预设路径(如/usr/lib/pkgconfig)和PKG_CONFIG_PATH环境变量包含的路径。如果你的uSockets.pc不在这些路径里,两种解决方式:

    1. 运行CMake前临时设置环境变量:
      export PKG_CONFIG_PATH=/你的uSockets.pc所在目录绝对路径:$PKG_CONFIG_PATH
      
    2. 在CMake代码里指定路径,放在pkg_check_modules调用前:
      set(PKG_CONFIG_PATH "${CMAKE_CURRENT_SOURCE_DIR}/你的uSockets.pc所在相对目录" ${PKG_CONFIG_PATH})
      
  • 替换.pc文件中的相对路径
    你用的prefix=../include/uSockets是相对路径,CMake如果采用out-of-source构建(比如单独的build文件夹),pkg-config解析路径时会出错。换成绝对路径更可靠:

    prefix=/absolute/path/to/include/uSockets
    
  • 最后确认库文件的有效性
    确保libuSockets.a确实在${prefix}/libs目录下,同时检查库的架构和你的项目匹配(比如项目是64位,库不能是32位)。

内容的提问来源于stack exchange,提问作者Zajebany Sifl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 06:22:14