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

链接自定义C++静态库时遭遇两类不同LD错误求助

自定义C++库测试程序链接错误排查问题

我自己编写了一个C++自定义库,已顺利编译完成,目前正在编写测试程序进行精度校验。

采用如下方式编译时:

$ c++ -I./include/ -L./lib -lname test.cpp -c -o test.o
....[编译成功]
$ c++ -I./include/ -L./lib -lname test.o -o test

出现错误:ld: 1 duplicate symbol for...(错误指向测试函数)。

但保持test.o的编译方式不变,修改生成可执行文件的命令为:

c++ -I./include -L./lib test.o -o test

则返回错误:ld: symbols() not found for ...(同样指向测试函数)。

我确认库的编译构建流程无误,但尝试多种编译test的方式后仍未解决问题。

补充说明:

  • 已修正测试文件名的拼写错误。
  • 移除第一步编译命令中的-L和-l参数后,编译成功。
  • 移除第二步命令中的-I参数,执行命令c++ -L./lib -lname test.obj -o test时,出现错误ld: library for -lname not found。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 11:31:34