ssbssa / heob

Detects buffer overruns and memory leaks.
Boost Software License 1.0
156 stars 25 forks source link

Build heob in 64-bit mode #24

Closed Nesavi closed 2 years ago

Nesavi commented 2 years ago

Hi.

I am having trouble building heob in 64-bit mode. When executing "build.bat" I get the following output:

C:\Users\thomas.lassen\source\heob>echo "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\ATLMFC\lib\x86;C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\lib\x86;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x86;C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x86;C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x86" | find /i "lib\amd64" 1>NUL

C:\Users\thomas.lassen\source\heob>if errorlevel 1 ( echo "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\ATLMFC\lib\x86;C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\lib\x86;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x86;C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x86;C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x86" | find /i "lib\x64" 1>NUL if errorlevel 1 (set bits=32 ) else (set bits=64 ) ) else (set bits=64 )

I have checked to see if the x64 libs are installed on my machine, and they are, but they are apparently not found. How can I determine how the value %lib% is set?

I have searched for a solution elsewhere, but have not been successful in finding one.

Apologies in advance for being such a noob.

ssbssa commented 2 years ago

Is that all of the output? I don't see any error messages. Also, is there some reason you don't just use the pre-built heob executables?

Nesavi commented 2 years ago

I didn't mean to imply that there's an error. I merely do not understand why I am not able to do a 64 bit build. I'll try the pre-built binaries.

Thanks.

ssbssa commented 2 years ago

If you use build.bat, it expects that the compiler environment variables are already set (PATH, LIB, INCLUDE). From what I can tell of the output you posted, you had these variables set for the 32bit compiler, because it says x86 everywhere instead of amd64 or x64.