Hi community,
I have recently started a new C++ project and I intend to make it cross-platform in time. I haven't had much experience with C++ projects before so the first thing that bothers me is that default Visual Studio file layout setup. I tried reading-up the Net on this subject but the info just seems rare and conflicting, so I started by doing something simple like this:
build
vc2010 // Visual C++ solution/project files
lib
include // Header files for third-party libs
// All library binaries here (like .lib, .dll or .so)
src
// My own code (including headers)
temp
// I use this as intermediate file output directory (for Visual C++)
Then Visual C++ project is configured to output final .exe in a root project directory (debug/release builds) so I can put there my own specific data as well (like data/
dir). Please note, I intend to manage my project under source version control repository (excluding some types like .exe) and I am not writing a library here. So my questions are:
Are there any de-facto standards for structuring your projects? Or are they platform and user specific?
How do you handle library dependencies? Do you just put pre-compiled binaries (like in my setup) or use full library source code and setup your project build process to include them in the process. Is it a good idea to put binary files under version control (like .lib/.dll in this case)?