g++使用记录
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"来指定增加动态链接库
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探