Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

unresolved external symbol __imp___gmpq_clear referenced in function "public: __cdecl CGAL::Gmpq_rep::~Gmpq_rep(void)" #4154

Closed
Rahma-15 opened this issue Aug 14, 2019 · 2 comments

Comments

@Rahma-15
Copy link

Rahma-15 commented Aug 14, 2019

Please use the following template to help us solving your issue.

Issue Details

I am trying to build a library OpenMVS which requires CGAL, i keep on getting this error. I downloaded gmp static library prebuilt for windows, the built in cmake worked fine but is giving errors in Visual Studio.

Source Code

1>------ Rebuild All started: Project: ZERO_CHECK, Configuration: Debug x64 ------
1>Checking Build System
1>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/libs/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/libs/Common/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/libs/Math/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/libs/IO/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/libs/MVS/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/apps/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/apps/InterfaceCOLMAP/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/apps/InterfaceVisualSFM/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/apps/DensifyPointCloud/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/apps/ReconstructMesh/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/apps/RefineMesh/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/apps/TextureMesh/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/apps/Viewer/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/docs/CMakeFiles/generate.stamp is up-to-date.
2>------ Rebuild All started: Project: Common, Configuration: Debug x64 ------
2>Generating CXX prefix header C:\Users\rnawab\Documents\OpenMVS\vcpkg-master\build\libs\Common\x64\Debug\cotire\Common_CXX_prefix.hxx
2>Building Custom Rule C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/src/libs/Common/CMakeLists.txt
2>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/libs/Common/CMakeFiles/generate.stamp is up-to-date.
2>Common.cpp
2>CUDA.cpp
2>ConfigTable.cpp
2>EventQueue.cpp
2>Log.cpp
2>SML.cpp
2>Timer.cpp
2>Types.cpp
2>Util.cpp
2>Generating Code...
2>Common.vcxproj -> C:\Users\rnawab\Documents\OpenMVS\vcpkg-master\build\lib\vc15\x64\Debug\Common.lib
3>------ Rebuild All started: Project: IO, Configuration: Debug x64 ------
4>------ Rebuild All started: Project: Math, Configuration: Debug x64 ------
3>Generating CXX prefix header C:\Users\rnawab\Documents\OpenMVS\vcpkg-master\build\libs\IO\x64\Debug\cotire\IO_CXX_prefix.hxx
4>Generating CXX prefix header C:\Users\rnawab\Documents\OpenMVS\vcpkg-master\build\libs\Math\x64\Debug\cotire\Math_CXX_prefix.hxx
3>Building Custom Rule C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/src/libs/IO/CMakeLists.txt
4>Building Custom Rule C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/src/libs/Math/CMakeLists.txt
3>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/libs/IO/CMakeFiles/generate.stamp is up-to-date.
4>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/libs/Math/CMakeFiles/generate.stamp is up-to-date.
3>Common.cpp
4>Common.cpp
4>IBFS.cpp
4>lmmin.cpp
4>Generating Code...
3>Image.cpp
3>ImageBMP.cpp
3>ImageDDS.cpp
4>Math.vcxproj -> C:\Users\rnawab\Documents\OpenMVS\vcpkg-master\build\lib\vc15\x64\Debug\Math.lib
3>ImageJPG.cpp
3>ImagePNG.cpp
3>ImageSCI.cpp
3>ImageTGA.cpp
3>ImageTIFF.cpp
3>OBJ.cpp
3>PLY.cpp
3>Generating Code...
3>ImageTIFF.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
3>ImagePNG.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
3>ImageJPG.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
3>IO.vcxproj -> C:\Users\rnawab\Documents\OpenMVS\vcpkg-master\build\lib\vc15\x64\Debug\IO.lib
3>Done building project "IO.vcxproj".
5>------ Rebuild All started: Project: MVS, Configuration: Debug x64 ------
5>Generating CXX prefix header C:\Users\rnawab\Documents\OpenMVS\vcpkg-master\build\libs\MVS\x64\Debug\cotire\MVS_CXX_prefix.hxx
5>Building Custom Rule C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/src/libs/MVS/CMakeLists.txt
5>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/libs/MVS/CMakeFiles/generate.stamp is up-to-date.
5>Common.cpp
5>Camera.cpp
5>DepthMap.cpp
5>Image.cpp
5>Mesh.cpp
5>C:\dev\CGAL-4.14\include\CGAL/config.h(119): warning C4005: 'BOOST_PARAMETER_MAX_ARITY': macro redefinition
5>C:\local\boost_1_70_0\boost/parameter/config.hpp(10): note: see previous definition of 'BOOST_PARAMETER_MAX_ARITY'
5>Platform.cpp
5>PointCloud.cpp
5>RectsBinPack.cpp
5>Scene.cpp
5>SceneDensify.cpp
5>SceneReconstruct.cpp
5>SceneRefine.cpp
5>SceneRefineCUDA.cpp
5>SceneTexture.cpp
5>Generating Code...
5>MVS.vcxproj -> C:\Users\rnawab\Documents\OpenMVS\vcpkg-master\build\lib\vc15\x64\Debug\MVS.lib
5>Done building project "MVS.vcxproj".
6>------ Rebuild All started: Project: ReconstructMesh, Configuration: Debug x64 ------
6>Building Custom Rule C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/src/apps/ReconstructMesh/CMakeLists.txt
6>CMake does not need to re-run because C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/apps/ReconstructMesh/CMakeFiles/generate.stamp is up-to-date.
6>ReconstructMesh.cpp
6>   Creating library C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/bin/vc15/x64/Debug/ReconstructMesh.lib and object C:/Users/rnawab/Documents/OpenMVS/vcpkg-master/build/bin/vc15/x64/Debug/ReconstructMesh.exp
6>MVS.lib(SceneReconstruct.obj) : error LNK2019: unresolved external symbol __imp___gmpq_clear referenced in function "public: __cdecl CGAL::Gmpq_rep::~Gmpq_rep(void)" (??1Gmpq_rep@CGAL@@QEAA@XZ)
6>MVS.lib(SceneReconstruct.obj) : error LNK2019: unresolved external symbol __imp___gmpq_equal referenced in function "public: bool __cdecl CGAL::Gmpq::operator==(class CGAL::Gmpq const &)const " (??8Gmpq@CGAL@@QEBA_NAEBV01@@Z)
6>MVS.lib(SceneReconstruct.obj) : error LNK2019: unresolved external symbol __imp___gmpq_init referenced in function "public: __cdecl CGAL::Gmpq_rep::Gmpq_rep(void)" (??0Gmpq_rep@CGAL@@QEAA@XZ)
6>MVS.lib(SceneReconstruct.obj) : error LNK2019: unresolved external symbol __imp___gmpq_set_d referenced in function "public: __cdecl CGAL::Gmpq::Gmpq(double)" (??0Gmpq@CGAL@@QEAA@N@Z)
6>MVS.lib(SceneReconstruct.obj) : error LNK2019: unresolved external symbol __imp___gmpn_add_n referenced in function __gmpn_add
6>MVS.lib(SceneReconstruct.obj) : error LNK2019: unresolved external symbol __imp___gmpn_mul referenced in function "struct CGAL::Mpzf __cdecl CGAL::operator*(struct CGAL::Mpzf const &,struct CGAL::Mpzf const &)" (??DCGAL@@YA?AUMpzf@0@AEBU10@0@Z)
6>MVS.lib(SceneReconstruct.obj) : error LNK2019: unresolved external symbol __imp___gmpn_sqr referenced in function "struct CGAL::Mpzf __cdecl CGAL::Mpzf_square(struct CGAL::Mpzf const &)" (?Mpzf_square@CGAL@@YA?AUMpzf@1@AEBU21@@Z)
6>MVS.lib(SceneReconstruct.obj) : error LNK2019: unresolved external symbol __imp___gmpn_sub_n referenced in function __gmpn_sub
6>MVS.lib(SceneReconstruct.obj) : error LNK2019: unresolved external symbol __imp___gmpn_copyi referenced in function "public: __cdecl CGAL::Mpzf::Mpzf(struct CGAL::Mpzf const &)" (??0Mpzf@CGAL@@QEAA@AEBU01@@Z)
6>C:\Users\rnawab\Documents\OpenMVS\vcpkg-master\build\bin\vc15\x64\Debug\ReconstructMesh.exe : fatal error LNK1120: 9 unresolved externals
6>Done building project "ReconstructMesh.vcxproj" -- FAILED.
========== Rebuild All: 5 succeeded, 1 failed, 0 skipped ==========

Environment

  • Windows 10, 64 bit
  • Compiler: VS -2015
  • Release or debug mode: Debug
  • Specific flags used (if any):
  • CGAL version: 4.14
  • Boost version: 1.70
@lrineau
Copy link
Member

lrineau commented Sep 9, 2019

It looks like the linker is missing libgmp. I do not know what can be wrong. Have you found a solution since then?

@Rahma-15
Copy link
Author

I had to give the path to 'libgmp-10.lib' file in linker -> include in Visual studio and it worked

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants