问题:

在Linux下编译程序的时候免不了调用别人或者第三方开源的库,我们知道Linux在编译的时候链接动态库可以有两种方案:

  • -l
    如-ldl,链接的就是libdl.so

  • -L
    如-L /usr/lib64/libdl.so

如果你用到的库不是以"lib"开头名字的库怎么办?如大数库miracl.a、testAPI.so这你怎么链接呢?

解决方案:

  1. 修改库的名字
    如把miracl.a修改为libmiracl.a,再用上述的方法-lmiracl链接到程序中。
 gcc -o test test.c -I./include -lmiracl -ltestAPI
  1. 不修改名字的话就只能用 -L 方式链接这个库了
gcc -o test test.c -I./include -L./lib miracl.a testAPI.so
如果没有环境变量就需要写绝对路径
gcc -o test test.c -I./include -L   /home/test/miracl.a /home/test/testAPI.so
Logo

更多推荐