linux共享库编译的一些命令

    在这个例子中,message.c是一个接口函数的具体实现,它要被编译成一个共享的库函数。main.c是一个调用了该共享库的一个函数(在这里没有提供message.c的一些接口,即假设接口已知)。

    由于共享库会被许多程序共享,所以需要以一种位置无关的编译方式编译它。gcc -fPIC -c message.c。PIC标志告诉gcc产生的代码不要包含对函数和变量具体内存位置的引用。
    gcc -shared -o libmessage.so message.o,使用shared标志libmessage.so是共享库。

    用gcc通知连接器使用共享函数库资源libmessage.so:
    gcc -o goodbye -lmessage -L. main.o。
    -lmessage标记告诉gcc在连接时用共享的函数库libmessage.so.  -L.说明gcc 函数库可能位于当前目录。注意这里的-lmessage是-l + message的组合。
   
    导出LD_LIBRARY_PATH环境变量,这里有很多地方要注意。可以cd到工作目录下运行命令export LD_LIBRARY_PATH=`pwd` 这里`不是单是引号。该环境变量可以包含额外的函数库搜索路径。运行时连接器将搜索这些额外的路径以发现没有在标准路径中找到的函数库。

你可能感兴趣的:(C++,c,linux,C#,gcc)