vs2017使用gmp类库时输入输出符号无法解析外部符号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vs2017使用gmp类库时输入输出符号无法解析外部符号相关的知识,希望对你有一定的参考价值。

代码如下
#include <iostream>
#include <gmp.h>
#include <gmpxx.h>

#pragma comment(lib,"libgmpxx.a")
#pragma comment(lib,"libgmp.a")

#pragma comment(lib,"libgcc.a")
#pragma comment(lib,"libmingwex.a")
#pragma comment(lib,"libmsvcrt.a")

using namespace std;

int main(int argc, char* argv[])

mpz_class a;
a = 3;
cout << a;
cin.get();
return 0;


就别跟我说什么库没有导入什么的,我这个gmpxx.a库是用g++编译的,库中c语言的函数正常使用,c++类的运算符正常使用,就输入输出出问题,听说是因为ostream类模板导致的问题,但我不会解决啊。。大神帮帮忙~~
我这是调用静态库,尝试过编译调用动态库也一个样,只有输入输出符号无法解析外部符号,其他函数和c++类一切正常
错误提示
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2019 无法解析的外部符号 "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,struct __mpz_struct const *)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@PBU__mpz_struct@@@Z),该符号在函数 "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<<struct __mpz_struct [1],struct __mpz_struct [1]>(class std::basic_ostream<char,struct std::char_traits<char> > &,class __gmp_expr<struct __mpz_struct [1],struct __mpz_struct [1]> const &)" (??$?6$$BY00U__mpz_struct@@$$BY00U0@@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABV?$__gmp_expr@$$BY00U__mpz_struct@@$$BY00U1@@@@Z) 中被引用 测试 F:\Documents\Programming Project\Comment\测试\测试\测试\源.obj 1

我在vs2008环境下面遇到了这个问题总算自己解决了如果选择的是win32而非x64配置,对应的库目录一定要设置到x86而非x64在win32配置下使用x64 directx 库就会出现这种情况解决方法:假设directx目录为 C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\则对于win32配置项目->属性->C/C++->常规->附加包含目录 添加 C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include项目->属性->链接器->常规->附加库目录 添加 C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86然后选择全部重新编译我就是这样解决了这个问题追问

但我把那句 cout<< a;去掉后运行就正常了,这是怎么回事啊,就是不能输出输入

参考技术A 请问这个问题你解决了吗?追问

解决是解决了,我找了很久,其实就是对应的cpp没有编译到,自己手动把cpp指定好重新编译就行

以上是关于vs2017使用gmp类库时输入输出符号无法解析外部符号的主要内容,如果未能解决你的问题,请参考以下文章

vs2017,vs2019,无法解析的外部符号 sscanf,无法解析的外部符号 _snprintf,无法解析的外部符号 _vsnprintf,无法解析的外部符号 __iob_func

vs2017,vs2019,无法解析的外部符号 sscanf,无法解析的外部符号 _snprintf,无法解析的外部符号 _vsnprintf,无法解析的外部符号 __iob_func

vs2017,vs2019,无法解析的外部符号 sscanf,无法解析的外部符号 _snprintf,无法解析的外部符号 _vsnprintf,无法解析的外部符号 __iob_func

vs2017,vs2019,无法解析的外部符号 sscanf,无法解析的外部符号 _snprintf,无法解析的外部符号 _vsnprintf,无法解析的外部符号 __iob_func

VS2017 在源代码中出现大量“无法解析符号”错误,但一切正常

VS2022编译GDAL库报错: LINK : error LNK2001: 无法解析的外部符号 _OSRValidate _OGR_G_GetPointCount _OGRRegisterAll