我试图编译一些使用我编写的存根库的c ++代码。该库是用C语言编写的,它有一个标题和一些什么都不做的函数。在我的makefile中,我使用
编译库gcc -Wall -Werror -c myLib.c -o myLib.o
gcc -shared -nostartfiles -Wl,-soname,libmyLib.so -o libmyLib.so myLib.o
库似乎构建正常,运行ld -lmyLib --verbose
找到库并显示所有功能。注意:确实会发出警告:
cannot find entry symbol _start; not setting start address
然后在我的其他代码中,我单独编译和链接。我用
编译g++ -Wall -Werror -c foo.o foo.cpp -lmyLib
这个编译很好,foo.cpp包含#include<myLib.h>
而myLib.h在/usr/include/
当我尝试将它们与
连接起来时g++ -o mainProg *.o -lmyLib
我得到错误“未定义的引用(mylib中的函数)”
我试图解决这个问题几天但没有运气。我有什么傻事吗?
谢谢,如果我能提供更多信息,请告诉我。