在 Ubuntu 下用 C++ 创建静态库(.a 文件),通常步骤如下:
假设有两个文件:
mylib.h
#pragma once
void hello();
mylib.cpp
#include <iostream>
#include "mylib.h"
void hello() {
std::cout << "Hello from static lib!" << std::endl;
}
g++ -c mylib.cpp -o mylib.o
⚠️ 静态库必须由 .o 文件组成
ar 创建静态库ar rcs libmylib.a mylib.o
说明:
r:插入或替换c:创建库时不警告s:生成索引(等价于 ranlib)生成文件:
libmylib.a
写一个测试程序:
main.cpp
#include "mylib.h"
int main() {
hello();
return 0;
}
编译并链接:
g++ main.cpp -L. -lmylib -o test
说明:
-L.:库所在目录-lmylib:对应 libmylib.a运行:
./test
输出:
Hello from static lib!
g++ -c a.cpp b.cpp
ar rcs libxxx.a a.o b.o
ar t libmylib.a
.a.so如果你需要:
可以继续问我。