生成静态库:
$(AR) -rcs libcgic.a cgic.o
调用静态库:
CFLAGS=-g -Wall -I../include //指定头文件路径
LIBS=-static -L./ -lcgic //指定库路径
$(CC) cgictest.o -o cgictest.cgi ${LIBS}
生成动态库:
$(CC) -shared -fPIC -o libcgic.so cgictest.o
注:“PIC”命令行标记告诉GCC 产生的代码不要包含对函数和变量具体内存位置的引用,这是
因为现在还无法知道使用该消息代码的应用程序会将它连接到哪一段内存地址空间。这样编
译出的hello.o 可以被用于建立共享链接库。
建立共享链接库只需要用GCC 的”-shared”即可。
调用动态库:
CFLAGS=-g -Wall -I../include //指定头文件路径
LIBS=-L./ -lcgic //指定库路径
$(CC) cgictest.o -o cgictest.cgi ${LIBS}
-Wl,-rpath=../ 指定程序运行时动态库位置。
注: 当静态库和动态库同名时, gcc 命令将优先使用动态库。
C调用C++库在连接时候LINK=$(CPP)
可参考: