在 C++ 中使用.a 静态库
在 archlinux 上成功使用.a 静态库.
主要代码
myadd.cpp 和 myadd.h
1 | // myadd.h |
1 | // myadd.cpp |
使用 g++ -c myadd.cpp -o myadd.o
来编译 myadd.cpp
成机器码myadd.o
使用 ar rcs libmyadd.a myadd.o
将机器码 myadd.o
打包成静态库libmyadd.a
1
2
3
4汇编成机器码
g++ -c myadd.cpp -o myadd.o
打包
ar rcs libmyadd.a myadd.o
关于 ar 命令的详细内容, 可以看我的这篇文章.
main.cpp
1 | // main.cpp |
使用 g++ main.cpp -static -L. -lmyadd && ./a.out
获得如下输出1
add(1, 2) = 3
一些注释
-L. -lmyadd
参数的意思是在./
目录去寻找libmyadd.a
-static
将所有的库以静态的方式链入可执行程序, 这样生成的可执行程序, 不再依赖任何库
目录结构
1 | test/ |