blob: 7d99036a1e70c16374e9b03be12bf26bcc6233a5 [file]
Configuring properties for a test project in visual studio
=======================================================================================
NOTE: also see "troubleshooting" section below.
Make these changes to project/properties defaults:
Environment Variables
APRPATH must identify the directory in which the Apache Portable Runtime is installed.
At this writing this is C:\workspace\tools\apache-apr\apr-1-2-11
CUNITPATH must identify the directory in which Cunit is installed.
At this writing this is C:\workspace\tools\cunit\cunit-2.1-0
Configuration Properties
C/C++
General
* Additional Include Directories:
..\..\..\inc;
..\..\..\ext\hashtab;
$(APRPATH)\inc
$(CUNITPATH)\inc
* Debug Information Format: C7 Compatible (/Z7)
(to intergate debug info such that we can step into multiple libs)
* Treat Warnings as Errors: Yes (/WX)
(since MS C compiler "warnings" are frequently serious errors)
Preprocessor
* Preprocessor Definitions: add APR_DECLARE_STATIC to this list
for example, WIN32;_DEBUG;_CONSOLE; APR_DECLARE_STATIC
(targets the static APR library)
Code Generation
* Enable Minimal Rebuild: No
(must be off in order for /Z7 to take effect)
* Enable C++ Exceptions: No
Precompiled Headers
* Create/User Precompiled Header: Not Using Precompiled Headers
Advanced
* Compile As: Compile as C Code (/TC)
Linker
General
* Enable Incremental Linking: No (/INCREMENTAL:NO)
Additional Library Directories
..\..\..\lib
..\..\..\ext\lib
$(APRPATH)\lib
$(CUNITPATH)\lib\win32
Input
* Additional Dependencies:
libcunit.lib etch.lib jenkhash.lib apr-1.lib WS2_32.LIB Mswsock.lib
Command Line
* Additional options: /NODEFAULTLIB:LIBCMTD
Additional linker import libraries
=======================================================================================
We might have copied references to libraries into the "Resource Files" folder of a test
project. Libs may include libcunit.lib, common.lib, message.lib. Contro/drag from a lib
folder, or from another test project. This should not be the case, all link libs should
be specified in linker options, however there may be early projects with references
specified in Resource Files.
Linker warning notes:
=======================================================================================
Rebuilding a test project may elicit this linker warning
LNK4099: PDB 'vc80.pdb' was not found with '..\..\..\lib\common.lib'
However we are compiling libraries (common, message, etc) with compatibility mode (/Z7),
which means we do not need .pdb files for debug information. The linker warning LNK4099
apparently cannot be suppressed however. This warning notwithstanding, you can step
into or breakpoint the library code from any test.
Troubleshooting:
=======================================================================================
1. Problem: Link errors on APR symbols, and the test's .obj file has a "1" appended.
Solution: Ensure APR_DECLARE_STATIC is included in Preprocessor Definitions