Собираю библиотеку db-18.1.40 компилятором mngw32 в консоли, CMake-ом создал make файл. На 60% получаю ошибку
Цитата | [ 60%] Building C object CMakeFiles/BerkeleyDB.dir/src/mutex/mut_win32.c.obj In file included from C:/db-18.1.40/src/dbinc/mutex.h:15, from C:/db-18.1.40/build_windows/db_int.h:1293, from C:\db-18.1.40\src\mutex\mut_win32.c:12: C:\db-18.1.40\src\mutex\mut_win32.c: In function '__db_win32_mutex_lock': C:/db-18.1.40/src/dbinc/mutex_int.h:371:28: error: expected '(' before '{' token #define MUTEX_PAUSE {__asm{_emit 0xf3}; __asm{_emit 0x90}} ^ C:\db-18.1.40\src\mutex\mut_win32.c:176:4: note: in expansion of macro 'MUTEX_PAUSE' MUTEX_PAUSE ^~~~~~~~~~~ C:/db-18.1.40/src/dbinc/mutex_int.h:371:29: error: '_emit' undeclared (first use in this function); did you mean '_exit'? #define MUTEX_PAUSE {__asm{_emit 0xf3}; __asm{_emit 0x90}} ^~~~~ C:\db-18.1.40\src\mutex\mut_win32.c:176:4: note: in expansion of macro 'MUTEX_PAUSE' MUTEX_PAUSE ^~~~~~~~~~~
|
Т.е. компилятор не знает, что такое _emit. Правильно я понимаю? Компилятор поставил не старый
Цитата | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
|
В инете нашёл упоминание, что народ собирает эту библиотеку с помощью mngw32, но такой ошибки не упоминается. Как её победить?
|