Take the 2-minute tour ×

I need to parallelize a library through the use of a graphic accelerator. I have had no trouble doing similar work on Linux but I am struggling with using Visual Studios 2012.

I can't figure out how to do analogs to simple things. I can't figure out how to do simple things like specifying linkage, libraries, and include files.

I need to move quickly from understanding the Linux build system to the Windows build system.

Does anybody have a guide or some advice on moving from Linux to Visual Studios development?

I feel like I am crawling through a labyrinth of menus. With frequent dead ends saying that this feature has moved to another place.

Also this code must build with VS2012.

share|improve this question

closed as not a real question by gnat, Thomas Owens Nov 16 '12 at 13:35


Are you using the free version? –  JeffO Nov 16 '12 at 2:11
No I am using the 'ultimate' version. –  Mikhail Nov 16 '12 at 2:24
You can either fiddle around with the menus for several days for yourself, or hire an experienced C++ dev / consulter for one day and let him explain you how the VS build system works. I guess the second option will be much cheaper on the long term. –  Doc Brown Nov 16 '12 at 11:25
This is going to sound dumb, but the first thing to do is start right clicking on stuff -- most of the features you talk about are in context menus. You can do no harm with right clickage. –  Wyatt Barnett Nov 16 '12 at 12:43
it might be an awkward question, but it is a valid one - MS has changed a lot about the way C++ manages its path settings, and its somewhat confusing for an experienced MS developer, let alone a Linux guy. –  gbjbaanb Nov 16 '12 at 20:16
show 2 more comments

2 Answers

I'd suggestion using CMake for your build system. You describe your build in a relatively sensible syntax, then CMake generates makefiles for Linux and project files for VS. Other than that you could use NMake and spend some time learning the command line flags for the Microsoft compiler and linker. But then you end up having to provide ongoing support for two different Makefiles.

share|improve this answer
-1 : does not answer the question. Instead of facing the problem, you are suggesting a sub-optimal work around. The OP would benefit a lot from learning how Visual Studio works and it would boost his productivity a lot in the future. –  marco-fiset Nov 16 '12 at 2:05
The library I am building actually uses cmake, but the problems I am running into have to do with header files not being found despite me specifying the directories in the VC++Directories panel. Its immediately clear to me that I have no clue what I am doing. –  Mikhail Nov 16 '12 at 2:28
@Mikahl aren't you specifying the location of the includes files with include_directories() statments in your CMake file? –  Charles E. Grant Nov 16 '12 at 2:31
@CharlesE.Grant That's what I thought, but apparently not. Compile says that it can't find includes which I can find by hand in the directories I specified. What I need is a guide to go from the Linux build system to Visual Studios 2012... –  Mikhail Nov 16 '12 at 2:45
@Mikhail, to know how to properly specify included files, see: stackoverflow.com/questions/7777481/… –  Emmad Kareem Nov 16 '12 at 3:35
show 2 more comments

I can't really help you more than Google can, but the settings you need to modify are a bit tricky since VS2010.

Here's a blog article from MS on what they did, and why. Paths are probably the most important part of setting up your build.

you'll now find a file in your user directory (open explorer, type %USERPROFILE% into the location bar at the top) called Microsoft.Cpp.$(Platform).user.props - this is where the path settings can now be set for some global paths. See this discussion.

no-one can really figure out why they did this as the old ways worked fine for the last 20 years.

share|improve this answer
add comment
