I am trying to port my openframeworks stuff over to VS2013 but i’m getting all kinds of compiler errors relating to Poco stuff. Presumably because it was all compiled in VS2010.
Error 82 error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1800' in main.obj X:\Program Files\Openframeworks\apps\processing\processing\PocoNetmdd.lib(HTTPMessage.obj)
Is there a workaround or fix for this? Why is openframeworks still using 2010 stuff? It’s time to move forward!
I can confirm that if you want to get openframeworks working with VS 2013 you really just need to compile POCO (I’m not really sure about the other modifications on the github Joshua is pointing at). I tested it on the EmptyExample, a GUI example with OSC messages and some custom projects and everything looks pretty legit to me.
I can share the libs or the process to compile them if anyone cares.
Yes! Please share your process. I’m about to make a push for updating Poco across the board and this would be quite useful as I’m not a native Win user.
Well… Actually my process was pretty terrible. You need to download the full sources (not the light version). Download openssl precompiled (the developer version, x86) as it’s hinted by poco website.
And then here come the wrong:
POCO comes with script to build it automatically with VS but does not come with a 2013 script version. So I opened the project solution one by one and compiled what was relevant for oF (static_MD debug and release). And you need to update the project file of crypto and net-ssl to point to the openssl includes and libs (right click on the project in vs, edit properties and the settings are in compiler general and linker general or something along those lines).
I think the right solution would be to update the compiling scripts but I didn’t had time to check how they worked.
@bakercp
I have a new question for you that just popped up. When you say you want to make a push to update Poco, are you talking about the current stable release or the dev one ? The dev one has VS2013 projects I think. Otherwise you could read the follwoing:
I improved my process a little bit! (I was compiling Poco in 64bit this time…).
You can upgrade a visual studio solution to VS 2013 by running devenv your_solution.sln /Upgrade so I wrote a little batch script called update.bat that I copied in the Poco main folder having something like :
devenv %1%1_x64_vs110.sln /Upgrade
And then run it in VS command line tool : (update Foundation; update Net …)
Once all of the solutions you need are updated you can run the command line script to build everything (saying you want to compile it for vs110 but as you upgrade the projects files it’s really compiling for vs120).
I think you need to launch the proper command prompt depending on whether you want to build in x64 or x86.
Hope it will help !
EDIT : After more experimetnation I just realized that the Poco library openframeworks is using was patched by Arturo to handle void event (ie ofEvent) so you need to be careful when updating Poco to a new version (cf github)
I just want to bump this thread because it’s 2015. On every new computer I have to work with OF on, I’m still grabbing all the2013 compiled libs from liquidzym and dropping them into OF
Yes. Today, in order to build imageLoaderExample in VS 2013, I had to: grab the libs from liquidzym, re-change the assignment of supportVAOs in libs/openFrameworks/gl/ofVbo.cpp to ofIsGLProgrammableRenderer() so it gets its expected bool, then download openframeworksLib.lib and openframeworksLibDebug.lib from the VS2010 libraries of some random OF project on Google Code.
I was given a OF course and was also not aware that OF didn’t work on VS2013.
To help my students I created a binary version with example VS project files and project generator from the github from Liquidzym.
For those who have trouble building the github VS2013 a download is available at. http://files.lab101.io/openframeworks-VS2013.zip
other frameworks are a download away, and actually compile. I almost learned juce instead because of this. Maybe this should be flagged somewhere on the main page? sorry linux people, not there yet