我有一个问题:如何在Linux中用gcc编译一个静态库,也就是说,我需要将源代码编译成一个名为out的文件.a、 仅用gcc -o out.a out.c命令编译就足够了吗?我对gcc不太熟悉,希望有人能帮我一把.

推荐答案

Creating a shared and static library with the gnu compiler [gcc]

gcc -c -o out.o out.c

-c表示创建中间对象文件,而不是可执行文件.

ar rcs libout.a out.o
 

这将创建静态库.r表示插入替换,c表示创建新档案,s表示写入索引.一如既往,更多信息请参见man page.

C++相关问答推荐

FFmpeg不检测比特流过滤器参数

变量的const视图是否定义良好?

Mbed TLS:OAEP的就地en—/decryption似乎不起作用'

SDL 2.0-从数组渲染纹理

二进制计算器与gmp

为静态库做准备中的奇怪行为

C在声明带有值的数组时,声明大小有用吗?

限制不同类型的限定符

在Rust和C之间使用ffi时如何通过 struct 中的[U8;1]成员传递指针

为什么我会收到释放后堆使用错误?

在每种If-Else情况下执行语句的最佳方式

如果格式字符串的内存与printf的一个参数共享,会发生什么情况?

Fprintf正在写入多个 struct 成员,并且数据过剩

从CentOS 7到Raspberry PI 2B的交叉编译-无法让LIBC和System Include标头一起工作

是否有单独的缓冲区用于读写库调用?

发送和接收的消息中的Unix域套接字不匹配

在文件描述符上设置FD_CLOEXEC与将其传递给POSIX_SPOWN_FILE_ACTIONS_ADCLOSE有区别吗?

解密Chrome加密密钥

哪些C++功能可以在外部C块中使用

访问未对齐联合的成员是否为未定义行为,即使被访问的成员已充分对齐?