使用CGAL和GMP编译错误

时间:2015-11-29 12:19:25

标签: hyperlink gmp cgal

也许有人可以帮助我实现这个目标。为了从pointclouds创建网格,我在Win7 x64上安装了CGAL 4.7,在使用Cmake之后,我使用VS2012成功编译了它。 在测试项目中,我想构建一个在CGAL文档http://doc.cgal.org/latest/Advancing_front_surface_reconstruction/Advancing_front_surface_reconstruction_2reconstruction_surface_mesh_8cpp-example.html上找到的示例 在我的项目中,我链接/包含了CGAL和boost以及gmp库(CGAL安装附带的那个)。但是如果编译这个小测试仍然会收到此错误消息:



1>  ConsoleApplication1.cpp
1>ConsoleApplication1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp___gmpq_add" in Funktion ""class CGAL::Gmpq __cdecl CGAL::operator+(class CGAL::Gmpq const &,class CGAL::Gmpq const &)" (??HCGAL@@YA?AVGmpq@0@AEBV10@0@Z)".
1>ConsoleApplication1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp___gmpq_clear" in Funktion ""public: __cdecl CGAL::Gmpq_rep::~Gmpq_rep(void)" (??1Gmpq_rep@CGAL@@QEAA@XZ)".
1>ConsoleApplication1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp___gmpq_cmp" in Funktion ""public: bool __cdecl CGAL::Gmpq::operator<(class CGAL::Gmpq const &)const " (??MGmpq@CGAL@@QEBA_NAEBV01@@Z)".
1>ConsoleApplication1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp___gmpq_init" in Funktion ""public: __cdecl CGAL::Gmpq_rep::Gmpq_rep(void)" (??0Gmpq_rep@CGAL@@QEAA@XZ)".
1>ConsoleApplication1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp___gmpq_mul" in Funktion ""class CGAL::Gmpq __cdecl CGAL::operator*(class CGAL::Gmpq const &,class CGAL::Gmpq const &)" (??DCGAL@@YA?AVGmpq@0@AEBV10@0@Z)".
1>ConsoleApplication1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp___gmpq_set_d" in Funktion ""public: __cdecl CGAL::Gmpq::Gmpq(double)" (??0Gmpq@CGAL@@QEAA@N@Z)".
1>ConsoleApplication1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp___gmpq_sub" in Funktion ""class CGAL::Gmpq __cdecl CGAL::operator-(class CGAL::Gmpq const &,class CGAL::Gmpq const &)" (??GCGAL@@YA?AVGmpq@0@AEBV10@0@Z)".
1>ConsoleApplication1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp___gmpn_add_n" in Funktion "__gmpn_add".
1>ConsoleApplication1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp___gmpn_mul" in Funktion ""struct CGAL::Mpzf __cdecl CGAL::operator*(struct CGAL::Mpzf const &,struct CGAL::Mpzf const &)" (??DCGAL@@YA?AUMpzf@0@AEBU10@0@Z)".
1>ConsoleApplication1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp___gmpn_sqr" in Funktion ""struct CGAL::Mpzf __cdecl CGAL::Mpzf_square(struct CGAL::Mpzf const &)" (?Mpzf_square@CGAL@@YA?AUMpzf@1@AEBU21@@Z)".
1>ConsoleApplication1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp___gmpn_sub_n" in Funktion "__gmpn_sub".
1>ConsoleApplication1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp___gmpn_copyi" in Funktion ""public: __cdecl CGAL::Mpzf::Mpzf(struct CGAL::Mpzf const &)" (??0Mpzf@CGAL@@QEAA@AEBU01@@Z)".
1>C:\Users\cap\documents\visual studio 2012\Projects\ConsoleApplication1\x64\Debug\ConsoleApplication1.exe : fatal error LNK1120: 12 nicht aufgelöste Externe
&#13;
&#13;
&#13;

所以我怀疑还有一些依赖缺失,但是哪些依赖? 提前致谢

忘了命令行: C / C ++

&#13;
&#13;
/Yu"stdafx.h" /GS /W3 /Zc:wchar_t /I"C:\Users\cap\Documents\cpp_libraries\CGAL-4.7\auxiliary\gmp\include" /I"C:\Users\cap\Documents\cpp_libraries\CGAL-4.7\build\include" /I"C:\Users\cap\Documents\cpp_libraries\boost_1_54_0" /I"C:\Users\cap\Documents\cpp_libraries\CGAL-4.7\include" /Zi /Gm /Od /sdl /Fd"x64\Debug\vc110.pdb" /fp:precise /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /MDd /Fa"x64\Debug\" /EHsc /nologo /Fo"x64\Debug\" /Fp"x64\Debug\ConsoleApplication1.pch" 
&#13;
&#13;
&#13;

接头:

&#13;
&#13;
/OUT:"C:\Users\cap\documents\visual studio 2012\Projects\ConsoleApplication1\x64\Debug\ConsoleApplication1.exe" /MANIFEST /NXCOMPAT /PDB:"C:\Users\cap\documents\visual studio 2012\Projects\ConsoleApplication1\x64\Debug\ConsoleApplication1.pdb" /DYNAMICBASE "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEBUG /MACHINE:X64 /INCREMENTAL /PGD:"C:\Users\cap\documents\visual studio 2012\Projects\ConsoleApplication1\x64\Debug\ConsoleApplication1.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"x64\Debug\ConsoleApplication1.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"C:\Users\cap\Documents\cpp_libraries\CGAL-4.7\auxiliary\gmp\lib" /LIBPATH:"C:\Users\cap\Documents\cpp_libraries\boost_1_54_0\lib64-msvc-11.0" /LIBPATH:"C:\Users\cap\Documents\cpp_libraries\CGAL-4.7\build\lib" /TLBID:1 
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

在Visual Studio 2015中(我假设在Visual Studio 2012中)您需要将实际的lib文件另外指定到要查找这些文件的目录(如下所述:{{3 }})。

查看您的链接器命令,我看到您已将目录指定给GMP / MPFR库(/LIBPATH:"C:\Users\cap\Documents\cpp_libraries\CGAL-4.7\auxiliary\gmp\lib),但您还需要通过将它们添加到{{1}来指定实际的lib文件。 } list:

/DYNAMICBASE