Friday, February 2, 2018

Visual C++: include files from another project in the same solution

Visual C++: include files from another project in the same solution. I take note from the following pages and put it here for my own reference.

Settings for compiler

In the project where you want to #include the header file from another project, you will need to add the path of the header file into the Additional Include Directories section in the project configuration. To access the project configuration:
  1. Right-click on the project, and select Properties.
  2. Select Configuration Properties->C/C++->General.
  3. Set the path under Additional Include Directories.

How to include

To include the header file, simply write the following in your code:

#include "filename.h"

Note that you don't need to specify the path here, because you include the directory in the Additional Include Directories already, so Visual Studio will know where to look for it.

If you don't want to add every header file location in the project settings, you could just include a directory up to a point, and then #include relative to that point:

// In project settings
Additional Include Directories ..\..\libroot

// In code
#include "lib1/lib1.h" // path is relative to libroot
#include "lib2/lib2.h" // path is relative to libroot

Setting for linker

If using static libraries (i.e. .lib file), you will also need to add the library to the linker input, so that at linkage time the symbols can be linked against (otherwise you'll get an unresolved symbol):
  1. Right-click on the project, and select Properties.
  2. Select Configuration Properties->Linker->Input
  3. Enter the library under Additional Dependencies. for example: MyLibX.lib
  4. Linker->General->Additional Library Directories: ..\MyLibX;
    //(for example). if adding reference is set, we still need to set up this step.
    we can combine 3) and 4) in 3) as: ..\MyLibX\MyLibX.lib

the above notes are from following links.

  1. visual c++: #include files from other projects in the same solution
  2. #include files from another project in Visual Studio Solution

No comments:

Post a Comment