gpt4 book ai didi

c++ - 将 GMP 添加到自己的库

转载 作者:行者123 更新时间:2023-11-28 05:47:06 25 4
gpt4 key购买 nike

如何将 GMP 添加到我的静态库?

在 MyLib.h 中我有

#include<gmp.h>
#include<gmpxx.h>

还有一些函数,比如:

void fun(mpz_t &a, mpz_t b){
mpz_add(a,a,b);
}

我创建的静态库

gcc -std-c++11 -c mbib.c -o mbib.o
ar rcs libmbib.a mbib.o

我已经链接了 mbib.o,当我不使用那里的函数时,它可以工作。但是当我尝试使用它们中的任何一个时,我有:

/home/MBIB/libmbib.a(mbib.o):-1: In function `__gmp_binary_plus::eval(__mpz_struct*, __mpz_struct const*, __mpz_struct const*)': 
mbib.cpp:-1: error: undefined reference to `__gmpz_add'
/home/MBIB/libmbib.a(mbib.o):-1: In function `__gmp_binary_multiplies::eval(__mpz_struct*, __mpz_struct const*, long)':
mbib.cpp:-1: error: undefined reference to `__gmpz_mul_si'

我试过添加

LIBS += -L[path] -lgmp -lgmpxx

但它不起作用。

最佳答案

很简单:你不能。

你不能,因为你在创建静态库时没有与其他库“链接”,静态库只不过是一个收集目标文件的存档,你实际上并没有使用链接器来创建静态库图书馆。命令ar和文件名后缀.a都是“archive”的意思。

如果您有一个依赖于另一个静态库的静态库,那么您还需要为最终的可执行文件(或动态库)构建另一个库。

关于c++ - 将 GMP 添加到自己的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36013865/

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