VOIP Project: Building PJSIP library - Part 8

After downloading the PJSIP project from pjsip.org website and installing the Visual C++ IDE, PJSIP project must be opened with Visual C++ IDE. In the solution explorer where are listed all the solutions of the PJSIP project, pjsua project must be set as the starting project.

Before starting to build the PJSIP project, it is necessary to check and properly set some configuration for the resulting libraries. In order to be able to build compatible libraries, it is necessary that the configuration of when building the PJSIP project, which will generate the need libraries, to be the same with the configuration of the compiler that will be used when building the final application.

The first concern of course must be the compatibility of the versions of the compiler. The compilers must be both 32 or 64 bit, which means that when running the compilation of the PJSIP project the target platform must be the same as the target platform which will be used during the development of the application. In the case of the development of this project, the target platform was chosen 32 bit, so when running the build of the PJSIP library in Visual C++ IDE Win32 was chosen.

A configuration which can cause compatibility problems is the way that the compilers generate the code. During the development of this project, when building the libraries, under the project proprieties, under C/C++ options of Visual C++ IDE, in the code generation section, the runtime library option was chosen DLL multithread (/MD), and this configuration was chosen for all the sub projects of the PJSIP project.

In order to be able to run the application in the debug and release mode during the development, the PJSIP libraries must be generated in the debug and release mode as well, and the generated libraries must be included in the project of the application which will be developed.

Another configuration which must be taken into consideration when building the PJSIP project and generating the PJSIP libraries, is the configuration which determines if the generated libraries will be static or dynamic. This element is defined before the building process starts and in the case of the project is dynamic.

< Part 7: Preparing environment Part 9: Creating PBX >

(please report broken link in the comment)

Comments

Popular posts from this blog

C++ Beginner: Lesson 4 - Tic Tac Toe game

C++ Beginner: Lesson 3 - Simple calculator

Free host and domain