我有许多源文件想合并成一个 .a
文件。我用命令创建库
ar rcs libcathat.a thing1.o thing2.o fish.o
然后我尝试使用我用来制作
.o
的相同编译器链接到这个库。文件(g++): g++ -L/path/to/cathat -lcathat seuss.o -o seuss
但是当我尝试使用在thing1.cpp(理论上在thing.o中表示)中定义的函数时会产生错误:
/path/seuss.cpp:46: undefined reference to `redFishBlueFish(int, char**)'
我还需要对
.a
做些什么吗?文件以使其可以链接到它?
最佳答案
尝试将链接器语句移到最后:
g++ seuss.o -o seuss -L/path/to/cathat -lcathat
如果这不起作用,请确保这些符号实际上在存档中:
nm libcathat.a
关于linker - 在 unix 上创建库时,除了 "ar rcs"之外还有什么必要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11093600/