ar crv libmyAPI.a myAPI.o 用于生成静态库‘,生成的库文件应遵循规范,及linux下库文件加“lib”前缀
动态库和静态库都需要使用.o文件,.o文件的生成是
g++ -c myAPI.cpp
也可以连起来用
g++ -fpic -c myAPI.cpp 用于生成位置无关的代码
g++ -shared myAPI.o -o libmrFunc.so 生成动态库
g++ test.cpp -o test 用于编译并生成可执行文件
g++ testspeaker.cpp speaker.cpp -o testspeaker 编译多个文件
使用静态库生成可执行文件
g++ main.cpp libmyAPI.a -o output
可执行文件是实际执行使用的,动态库和静态库是在使用的时候,另行加载的
而在程序实际运行的时候,动态加载器将可执行文件载入文件头指定的加载地址处,并加载该地址,开始从该地址处运行。
静态库是在链接可执行文件时,代码段和数据段直接拷贝到可执行文件中,动态库是在运行时加载动态库代码
-l代表寻找哪个库
-pthread,使用系统级线程
也可以直接在代码里通过#define LIB_CACULATE_PATH "./libmrFunc.so"来指定增加动态链接库
标签:可执行文件,记录,++,myAPI,使用,cpp,生成,加载 From: https://www.cnblogs.com/uestc-du/p/16902940.html