gpt4 book ai didi

c++ - 如何使用系统库创建静态库?

转载 作者:行者123 更新时间:2023-11-30 05:29:42 25 4
gpt4 key购买 nike

我使用 ntl 库编写了一个简单的 C++ 程序。我尝试从我的程序创建一个静态库。我使用了这些命令:

g++ -Wall -g -c base.cpp -o base.o
ar rcs libMyStaticLib.a *.o

libMyStaticLib.a 已成功创建。但是当我在另一个项目中使用 libMyStaticLib.a 时,我得到了这些错误:

g++ -o main.out main.cpp -lMyStaticLib
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libMyStaticLib.a(base.o): In function `NTL::Vec<NTL::GF2>::~Vec()':
/usr/local/include/NTL/vec_GF2.h:43: undefined reference to `NTL::WordVector::~WordVector()'

我的 main.cpp

#include <iostream>
#include </home/Qwer/test/base.h>

int main()
{
baseInit();
return 0;
}

我在创建静态库时尝试链接ntl

ar rcs libMyStaticLib.a *.o -lntl 

但是我得到这个错误:

ar: two different operation options specified 

我想尝试静态库并在另一个项目中使用它。我该怎么办?

最佳答案

静态库只不过是目标文件的归档(ar 程序创建的,.a 后缀代表) .链接静态库就像链接存档中的对象文件。

这就是为什么您的静态库所依赖的所有其他库都必须链接的原因:

$ g++ -o main.out main.cpp -lMyStaticLib -lntl

关于c++ - 如何使用系统库创建静态库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36306665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com