There is a pitfall for boost libaries: While “/MT” as a compileroption means “static-linking”, for boost “-mt” in the name of the library means “multi-threaded”. Multi-threading: Link against multi-threaded system library.The correct compileroption for msvc is “/MD” (dynamic liniking, dll) and not “/MT”.Flann use the “_s” postfix to indicate their correct.Note, that there is no standard naming convention. For boost the correct libs are named without “-s”.Moreover, libraries statically linked against the system library may conflict with other libraries linking statically against other versions of the system library. The reason for this is, that libraries with this configuration are commonly used and broadly available to download. dll)! Link against system library dynamically. Dynamic: This point is about linking against system libraries (“C/C++ Runtime Library”), not about the type of library we generate/download (Not. Linking against system library (libc.lib or msvc.lib).Choose 64bit inside Visual Studio for each dependency.Choose VSMC 12 when CMake asks about this for each dependency.We used Visual Studio 2013, 64bit (and NMake) for each dependency ( MSVC 12.0 is equal to Visual Studio 2013).However, if you wich to only quickly install the PCL, you may skip this section to the step-by-step explanation of how to create a working library. It may also help if you run into trouble which are not covered elsewhere in this tutorial. If you want to understand what exactly happens during installation, this section is for you. CMake with CMake-gui from -cmake 3.5.2.This tutorial was tested on Windows 10 Pro 圆4. ![]() Prior to Visual Studio we tried to use gcc with mingw and msys which led to major problems (see ‘what not to do’ section). For a PCL-only-setup, newer versions of MSVC should work fine. ![]() We found, that MSVC 12.0 was capable to do this for our specific case. A compiler/compiler version needed to be found, which can generate compatible binaries for all dependencies. Moreover the ported software has dependencies to other frameworks. We wanted to port a software from Linux to Windows requiring a version, newer than PCL 1.6.0. There is a list of official precompiled binaries, limited to Visual Studio 2010 and PCL 1.6.0 at. When we wanted to setup PCL for Windows together with other libraries, we noticed that this is not a trivial task. I have successfully built the binary tree using Cmake and the recommended Cmakelists.txtĪfter generation, when I try to build it I get the following error : error LNK2019: unresolved external symbol "public: void _thiscall pcl::visualization::PCLVisualizer::initCameraParameters(void)" referenced in function "class boost::shared_ptr _cdecl simpleVis(class boost::shared_ptr const >)" LNK2019: unresolved external symbol "public: void _thiscall pcl::visualization::PCLVisualizer::addCoordinateSystem(double,int)" referenced in function "class boost::shared_ptr _cdecl simpleVis(class boost::shared_ptr const >)" LNK2019: unresolved external symbol "public: bool _thiscall pcl::visualization::PCLVisualizer::setPointCloudRenderingProperties(int,double,class std::basic_string,class std::allocator > const &,int)" referenced in function "class boost::shared_ptr _cdecl simpleVis(class boost::shared_ptr const >)" these are just a few… am I missing something in the cmakelists.txt ? cmake_minimum_required(VERSION 2.6 FATAL_ERROR)Īdd_executable (pcl_visualizer_demo pcl_visualizer_demo.PCL on Windows Compiling PCL on Windows using Visual Studio 2012 Compiling PCL on Windows ![]() I am trying to run the following PCL simple viewer example from
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |