2

On our build system when we build 64 bit builds, the build is failing to find the stl libraries when they are included without the .h.

So if I do #include <string>it fails, but if I do #include <string.h> it works. This fails on the commandline with both msbuild and vcbuild, but works fine if I build in visual studio.

I am making sure that I am running from the correct environment by first calling:

"c:\Program Files (x86)\Microsoft Visual Studio 8\VC\vcvarsall.bat" amd64

This seems to be properly setting the environment and %INCLUDE% is defined as:

C:\Program Files (x86)\Microsoft Visual Studio 8\VC\ATLMFC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\include;C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\include;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\ATLMFC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\include;C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\include;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\ATLMFC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\include;C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\include;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\ATLMFC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\include;C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\include;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\ATLMFC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\include;C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\include;

The errors are like this:

c:\dev\msvc80_64\source\myclass.h(3): fatal error C1083: Cannot open include file: 'string': No such file or directory

rubenvb
  • 74,642
  • 33
  • 187
  • 332
Liron
  • 2,012
  • 19
  • 39
  • Update: it seems to work fine if I compile using the x86_x64 cross compiler, but fails if I use the standard x64 compiler. The machine is for sure a 64 bit machine. Anyone know what would cause the `#include`s to not find stl libraries only in x64? – Liron Mar 08 '11 at 01:19

0 Answers0