VS2017 编译 OLLVM

Posted by API Caller on February 23, 2019

OLLVM 在 Linux 上编译很简单, MinGW 里编译也很顺畅, 记录一下 VS2017 编译 OLLVM 的过程( LLVM 也差不多) .

本文环境

  • Windows 10 x64
  • Cmake 3.12.3 x64
  • Visual Studio 2017 (sdk 版本 10.0.17134.0)

需要改动的地方

1
2
3
4
5
6
7
8
// 低版本的 CryptoUtils.h

#if !defined(ENDIAN_BIG) && !defined(ENDIAN_LITTLE) // add by api-caller
#ifdef  _MSC_VER
#define ENDIAN_LITTLE
#endif
#endif

1
2
// 高版本的 interception_win.cc 
const char *funcname = (const char *)&import_by_name->Name[0];
1
2
3
4
5
6
7
8
// 高版本的 sanitizer_win.cc
#ifdef _MSC_VER
#ifdef PSAPI_VERSION
#undef PSAPI_VERSION
#endif
#define PSAPI_VERSION 1
#pragma comment(lib, "psapi.lib")
#endif

未完