链接自定义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
相关产品推荐
相关产品推荐

