Where to get PCL boost libraries with -mgw48 postfix? - boost

I'm working with MinGW not Visual Studio to compile openCV libraries to use them in a Qt .pro project.
My problem is my library files in boost folder are all -vc100 while CMake is trying to find -mgw48 files.
My libraries are in this directory:
C:\Program Files\PCL 1.6.0\3rdParty\Boost\lib
and their name are like : boost_date_time-vc100-mt-1_49.lib
but I want them to be like : boost_date_time-mgw48-mt-1_49.lib
so that CMake could recognize them.
Where can I download PCL with -mgw48 libraries?

Related

How to prevent CMake from installing .lib files

I am cross-compiling a JNI DLL on Windows using MSVC + CMake and I noticed that it is producing a .lib file on install. I am using add_library(mylibname SHARED ...) and install(TARGETS mylibname DESTINATION ${CMAKE_INSTALL_LIBDIR}) to create and install the shared library. Is there a way to prevent this file from being installed as it is not needed for JNI libraries at runtime?

install wxWidget as static library by Vcpkg

I'm using Visual studio 2019
I followed this link to install wxWidget using vcpkg install wxwidgets
https://www.wxwidgets.org/blog/2019/01/wxwidgets-and-vcpkg/
and read this link
https://computingonplains.wordpress.com/using-visual-studio-2017-to-build-wxwidgets/
and this
https://devblogs.microsoft.com/cppblog/vcpkg-updates-static-linking-is-now-available/
the problem after installing wxWidget using vcpkg the result build is Dynamic library and I want to compile my project as static library to run exe file on other users pc .
I want to change from Dynamic lib compilation to static due to :
users on another PCs get VCRUNTIME error so they have to install VC++ runtime library as I read in
How to fix a missing vcruntime140 clr 400 dll error
Summary of the problem :
vcpkg installation wxwidgets result is dynamic lib configuration and I need to install static one .
Instead of just doing vcpkg install wxwidgets
use vcpkg install wxwidgets:x64-windows-static
This will install wxwidgets and all it dependencies with static runtime and library linkage.
You can also define your custom triplet if you want to customize your build setup (see https://github.com/microsoft/vcpkg/blob/master/docs/users/triplets.md)
#MohmmedAlaa,
You are better off compiling the library yourself.
There is a big difference between compiling the project with wxWidgets being dynamic vs static and VC++ RT dynamic vs static.
Also, keep in mind that some VC++ RT is not licensed to be distributable.
So all in all - get the wxWidgets sources, install MSVC, build static libraries (possibly with the compiler switch to use "static RT) and compile your software.

How to generate .lib files with mingw toolchain?

I have installed MingW GCC 4.8.1 in my system. I am trying to build the LLVM source code( with some extra modification). Cmake 2.8.12 is used to generate the makefiles and visual studio solution files. I am able to build the LLVM source (Rel 3.4.2) with Visual Studio 2010 And is generating both lib and dll file. But with MingW I am not able generate .lib files by simply running Make all.
How to make MingW generate .lib file while building the project ?
Use CMAKE_GNUtoMS. Add -DCMAKE_GNUtoMS=ON to the build command. See this CMake issue. As result, a .lib file will be generated along with the .dll.a file.

Compiling FFMpeg libraries for Visual Studio

I'm trying to use the FFMpeg libraries in a Windows application. I use MingW-w64 to compile FFMpeg with static libraries with architecture once with x86 and once with x86_64.
Currently I'm trying to link the 32bit x86 libraries with my VS2008 application.
The libraries are added to the library path and VS does not complain about being unable to load a .a file.
However I get several uneresolved symbol errors like
ait_rtp_receiver.lib(ait_decoder_lib.obj) : error LNK2001: unresolved external symbol _av_free
I import the FFMpeg header files as extern C and I can see the symbols in the .a without the leading underscore.
What can I do to make the name decoration of Mingw-w64's gcc and of the VS compiler suite compatible?
After spending miserable days trying to get the GCC-Mingw based version of building FFMpeg to work, I reverted to using the Visual Studio or Windows SDK compiler and linker. Using the --toolchain=msvc of the configure script made the build process generate static .a files that are basically .lib files that can be loaded within Visual Studio projects.
I wrote the build steps up and here is a link

boost linking with visual studio 2010

I have successfully built boost using bjam and visual studio 2010 using this command:
bjam --build-dir=c:\boost --build-type=complete --toolset=msvc-10.0 address-model=64 architecture=x86 --with-system
I have also set the stage/lib directory as the lib directory in visual studio.
However, the linker gives me this:
fatal error LNK1104: cannot open file 'libboost_filesystem-vc90-mt-gd-1_50.lib'
Why is it looking for 'vc90' versions of the libraries? the vc100 version is there in the directory.. how do I change that?
Thanks.
You can explicitly specify the paths to the libraries in project settings. First you need to include the library names that you want to link against in your project.
Now we have to specify the directories, where the libraries specified above can be found.
I hope, that helps.
Check the compiler setting (You have choices for vc90 (2008), vc100 (2010)) in your project's properties.

Resources