Ogre3d cant link boost libraries in visual studio 2010 - c++

I recently tried to set up an ogre 3d v.19 project following the tutorials on their webpage.
After setting up the project i try to build it and I get the following error:
LINK : fatal error LNK1104: cannot open file 'libboost_thread-vc100-mt-gd-1_55.lib'
I made sure i'm using the right ogre SDk(vc10). I also checked if the file above was on its place - and it was! It's in the folder it's supposed to but i still get the error.
Please help.

You should gently check, that all boost libs (basically located at "OgreSDK_vc10_v1-9-0\boost\lib\"), e.g., for debug configuration:
libboost_thread-vc100-mt-gd-1_55.lib
libboost_system-vc100-mt-gd-1_55.lib
libboost_date_time-vc100-mt-gd-1_55.lib
libboost_chrono-vc100-mt-gd-1_55.lib
are declared in your project config (Project->Settings->Linker->Input->Additional dependencies). Besides, you should provide correct path, where VS2010 will seek this libs, by specifying Project->Settings->Linker->General->Additional Library Directories. After all these steps, linker have all the information to detect needed libraries and to process them.

I think you didn't link the libraries to Boost, check for these:
Configuration Properties - Linker - General - Additional Library Directories
$(OGRE_HOME)\boost\lib
$(OGRE_HOME)\lib\$(Configuration)

Related

how to use boost libs in project (VS2015)

I have Visual Studio 2015 and I'm trying to build the sample boost 1.62 link program on the 'Boost Getting Started' page. I followed the build steps in order to compile the various binaries, like regex. These are the steps:
c:\boost> bootstrap
c:\boost> .\b2
I got multiple errors because 'pyconfig.h' was missing, but I don't need this so I thought it was ok.
I set the 'Additional Libraries Directory' in my test project to c:\boost\libs, but at link time, get:
error: cannot open file libboost_regex-vc140-mt-gd-1_62.lib
I looked under .\libs and there were no lib files under there. I did see a new bin.v2 directory under boost\, which, under a very complicate tree has the lib file.
I set the 'Additional Libraries Directories' in my project to c:\boost\bin.v2, but same error.
Can anyone tell me what I need to do to be able to link successfully? Do I need to resolve that pyconfig.h error to get the libs deployed to the right location?
I found the problem. It appears VC++ projects should add an include path to .\boost\stage\lib, instead of what the boost webpage says. I don't know if this is true intention, but it appears to work.

cannot open file 'SDL2.lib'

I am trying to open sdl2 in my project on Visual C++ 2012 but i keep getting this error:
error LNK1104: cannot open file 'SDL2.lib'
I added the additional libraries and include folder but no luck..
I added the link to the libraries through the linker but i get the same error..
what should i do?
I'm referencing VS 2010, but I've read before that some people have had errors when using the VC++ Directories in their project properties as opposed to the Linker->General->Additional Library Directories.
Unfortunately, there really isn't much more to do besides making sure the directories are linked properly. There really is only one answer to this question. It also may depend on the download of SDL you chose, are you donwloading the Development Library as opposed to the binary?
Watch this video https://www.youtube.com/watch?v=or1dAmUO8k0.
In summary, you want to add the path include folder here: (configuration properties> C/C++ > General> Additional Include Directories),
and add the path of the lib folder here: (configuration properties> Linker > General> Additional Library Directories)
and finally, link .lib file in: linker > input > Additional Dependencies.
It seems like you didn't add your library directory path in VC++ Directories/Library Directories.. You have to link your library directory path (Where you have save you libraries of SDL) in your program. After adding, it will definitely work
I would like to add for others experiencing this problem that its an easy mistake if you are using the Development Library to link to the lib folder. SDL needs you link to either the x86 or x64 folder in the lib folder.
If you run or compile your program before you make those required changes of SDL then you will get this error always.. so first add a c++ file then make those changes and then write something and try to run ..this time it will never give this error
It seems like VS can't find the lib files. There are two ways you can do this. One is to configure the appropriate directories in VS as TwinkleBearDev's article shows. Another is to put the libraries directly where VS would look for them, as my article shows. I don't know if the folders for VS2012 are the same though - might be slightly different.

Error linking libboost_system in Visual C++

I have a problem using boost.asio. I use Windows XP and Visual Studio 2005
I followed these steps:
I downloaded the latest version (http://sourceforge.net/projects/boost/files/boost/1.46.1/) of W: \boost_1_46_1
I set the environment variable INCLUDE : W:\boost_1_46_1
In the properties of my project (VS->tools->Options project&solutions->vcc++directories) I added $(INCLUDE)
I added in my file. h this:
I get the following error:
LINK : fatal error LNK1104: cannot open file 'libboost_system-vc80-mt-gd-1_46_1.lib
This is a linker error. Find the lib, and go to linker input, and add it there. Be sure to set the libpath as well. This picture should guide you:
The boost::asio library needs to be built. ( Many other boost 'libraries are headers only and do not need to be built ). Building it yourself is a small challenge. Better to use the pre-built binary installer which is here
Once you have the built libraries, one way or another, you have to tell the linker where they are. However, you do not need to specify each individual library by name, just specify the folder that contains them. The easiest way to do this IMHO is to create an environment variable called BOOSTROOT which you you set equal to the folder where you installed boost. Then you tell the linker to look for libraries in $(BOOSTROOT)/lib

mfc42u.dll Error while migrating from VC6 to VS2005

I have migrated my VC6 application to VS2005, all my code got compiled with some changes and there is no compilation error.
But I am getting a linking error LNK1104.
LINK : fatal error LNK1104: cannot open file 'mfc42u.lib'
I have imported the dsw of VC6 in Visual Studio 2005, not sure from where it is still referring to the mfc42u.lib (I assume its library of VC6).
Please guide me how to get rid of this error.
This library is referred from Linker section of your project settings, specifically "Additional libraries" or something like this (do not remember the name of the setting exactly) - there are libraries needed to be linked with listed there. So just replace the mfc42u.lib with mfc8u.lib or whatever is the relevant version of mfc installed with your VS distribution there.
probably your linker settings aren't set properly. Go to Project Settings->Configuration->General->Use MFC Libraries and make sure the value is set to 'Use MFC in a shared library'. If you are able to build properly, then you can change it back to 'Static' to use the new library.

fatal error LNK1104: cannot open file 'libboost_system-vc90-mt-gd-1_43.lib'

Made a new project, added main.cpp and wrote the code at this URL:
http://www.boost.org/doc/libs/1_43_0/doc/html/boost_asio/example/echo/async_tcp_echo_server.cpp
Also, added the appropriate include path.
What's next?!?!! It seems like a darn mystery to build a boost code!
Been digging on it for more than 10 hours.
Can anyone give a straightforward answer on how to build the boost library from the code under windows, VC9?
You need to use bjam. It is responsible for creating the libraries that your application will use. Once you use bjam, you are going to need to instruct your project to include the lib file. You do this by going into the project's properties -> Configuration Properties -> Linker -> General. Add the directory which created the lib file to Additional Library Directories. You should be capable of correctly linking after that.
I believe that this link describes the steps better than I could attempt in a post
#bogertron: I want to hug you! (:
So, at last, with a real head ache, I've managed to do so.
The exact steps I took, so others will be saved from the head ache:
Went to http://www.boost.org/doc/libs/1_43_0/more/getting_started/windows.html#or-build-binaries-from-source .
Followed the "5.3.1 Get bjam" clause. Downloaded the "pre-built bjam executable for your platform" at this URL: http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=72941 .
Extracted the ZIP file (my platform is Windows).
Ran "build.bat". It produced the file "bin.ntx86/bjam.exe".
Copied this file to my PATH ("...../boost_1_43_0/").
From a command line, executed "bjam.exe" and waited for about 4-5 minutes.
Then got this message at the console: "The Boost C++ Libraries were successfully built!"
That's it, it even tells you where the include & lib files are.
Not all Boost libraries are header only, Boost.System is one of them. The documentation for Boost.Asio tells you that it depends on Boost.System.
With Visual Studio, the Boost libraries use auto-linking, which means you don't have to explicitly link to the libraries you need. You however need to have the necessary libraries in the library search path, either globally or per-project.
If you don't want to build the Boost libraries yourself, you can use the installers provided by boostpro (only up to Boost 1.42 though at the moment). If you want to build them yourself instead, the documentation covers that well.
I had the same error and i followed the SourceForge. The link will take you to a folder of zipped lib and dll files for version of boost.You can download and unzip related library and when copied it to the related location everything gonna be alright ;)
In Visual Studio, right-click on your project, then go to properties and select:
Properties -> Configuration Properties -> Linker
There you add the full path of your library in the tab named "Additional Library Directories".
From the "Boost Getting Started Directions":
"5.2 Or, Simplified Build From Source
If you wish to build from source with Visual C++, you can use a simple build procedure described in this section. Open the command prompt and change your current directory to the Boost root directory. Then, type the following commands:
bootstrap
.\b2"
On Windows, I opened the Visual Studio Command Line from the start menu. First I types "bootstrap" and then I typed ".\b2".
Now with boost_1.50 the Boost.build is included in the zip file: check tools\build\v2\ or better read: ...boost_1_50_0/more/getting_started/windows.html