69,371
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
void printMyLib1()
{
printf("In printMyLib1()\n");
}
文件2:
#include<stdio.h>
void printMyLib1();
int main(int argc, char*argv[])
{
printMyLib1();
}
文件1(mylib1.cpp)编译为.o文件,然后生成so文件并加上版本号:
gcc -shared -fPIC -c mylib1.cpp -o mylib1.o
ld -shared mylib1.o -o libmylib.so.1.1 -soname=libmylib.so.1
该文件放置于/home/dodomouse/workspace/Test
文件2(test.cpp)编译的时候link文件1生成的so文件,发现出错:
gcc test.cpp -o test -L/home/dodomouse/workspace/Test/ -lmylib
/usr/bin/ld: cannot find -lmylib
collect2: error: ld returned 1 exit status
如果生成的时候不加版本号,则是ok的:
ld -shared mylib1.o -o libmylib.so
gcc test.cpp -o test -L/home/dodomouse/workspace/Test/ -lmylib
这是为什么?