diff --git a/CMakeLists.txt b/CMakeLists.txt index b1297e716..e6ced6ec4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -791,6 +791,7 @@ endif() include_directories(SYSTEM ${Boost_INCLUDE_DIRS}) if(MINGW) + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wa,-mbig-obj") set(EXTRA_LIBRARIES mswsock;ws2_32;iphlpapi) set(ICU_LIBRARIES ${Boost_LOCALE_LIBRARY} icuio icuin icuuc icudt icutu iconv) elseif(APPLE OR OPENBSD OR ANDROID) diff --git a/Makefile b/Makefile index d0be9bcd6..41e8805d4 100644 --- a/Makefile +++ b/Makefile @@ -49,6 +49,14 @@ debug-static-all: mkdir -p build/debug cd build/debug && cmake -D BUILD_TESTS=ON -D STATIC=ON -D CMAKE_BUILD_TYPE=Debug ../.. && $(MAKE) +debug-static-win64: + mkdir -p build/debug + cd build/debug && cmake -G "MSYS Makefiles" -D STATIC=ON -D ARCH="x86-64" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=Debug -D BUILD_TAG="win-x64" -D CMAKE_TOOLCHAIN_FILE=../../cmake/64-bit-toolchain.cmake -D MSYS2_FOLDER=c:/msys64 ../.. && $(MAKE) + +debug-static-win32: + mkdir -p build/debug + cd build/debug && cmake -G "MSYS Makefiles" -D STATIC=ON -D ARCH="i686" -D BUILD_64=OFF -D CMAKE_BUILD_TYPE=Debug -D BUILD_TAG="win-x32" -D CMAKE_TOOLCHAIN_FILE=../../cmake/32-bit-toolchain.cmake -D MSYS2_FOLDER=c:/msys32 ../.. && $(MAKE) + cmake-release: mkdir -p build/release cd build/release && cmake -D CMAKE_BUILD_TYPE=Release ../.. diff --git a/README.md b/README.md index 4c3e9799a..9e28192b9 100644 --- a/README.md +++ b/README.md @@ -365,6 +365,16 @@ application. * The resulting executables can be found in `build/release/bin` +* **Optional**: to build Windows binaries suitable for debugging on a 64-bit system, run: + + make debug-static-win64 + +* **Optional**: to build Windows binaries suitable for debugging on a 32-bit system, run: + + make debug-static-win32 + +* The resulting executables can be found in `build/debug/bin` + ### On FreeBSD: The project can be built from scratch by following instructions for Linux above. If you are running monero in a jail you need to add the flag: `allow.sysvipc=1` to your jail configuration, otherwise lmdb will throw the error message: `Failed to open lmdb environment: Function not implemented`.