unix 使用ar cmd在C中构建静态库

jtw3ybtb  于 2023-04-20  发布在  Unix
关注(0)|答案(1)|浏览(120)

我是C编程的新手,正试图学习如何构建静态库。我试图构建一个应用程序,建议我做以下事情:

gcc -c testFile.c
ar a testFile.a testFile.o

当我尝试执行这些命令时,我得到一个错误:“ar:未指定操作”
我熟悉简单的C文件的构建,但是我不明白第二个cmd行是做什么的,为什么我们需要这样做?我了解.o文件,但是为什么我们需要做“ar a”?有没有更简单的方法来做上述操作并避免错误?谢谢

mmvthczy

mmvthczy1#

根据[Man7]: AR(1)man ar):
我的天 将文件 member...插入到 archive 中(带有 replacement)。
对于自定义,您可以使用其修饰符(也在上面的 URL 中列出)。
示例:

(py_pc064_03.10_test2_pycoralcf) [cfati@cfati-5510-0:/mnt/e/Work/Dev/StackExchange/StackOverflow/q076052480]> ~/sopr.sh
### Set shorter prompt to better fit when pasted in StackOverflow (or other) pages ###

[064bit prompt]> ls
[064bit prompt]> # Create an object file
[064bit prompt]> echo "void f() {}" | gcc -x c -c -o dummy.o -
[064bit prompt]> ls
dummy.o
[064bit prompt]> # Create (update) an archive out of it
[064bit prompt]> ar rs libdummy.a dummy.o
ar: creating libdummy.a
[064bit prompt]> ls -Al
total 8
-rw-r--r-- 1 cfati cfati 1352 Apr 19 12:08 dummy.o
-rw-r--r-- 1 cfati cfati 1490 Apr 19 12:10 libdummy.a
[064bit prompt]> # List archive members
[064bit prompt]> ar tv libdummy.a
rw-r--r-- 0/0   1352 Jan  1 02:00 1970 dummy.o

相关问题