所以我正在使用 vc15 编译器并且很难找到允许以下错误的标志:
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt\sys/stat.h(222): error C2466: cannot allocate an array of constant size 0
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt\sys/stat.h(228): error C2466: cannot allocate an array of constant size 0
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt\sys/utime.h(101): error C2466: cannot allocate an array of constant size 0
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt\sys/utime.h(107): error C2466: cannot allocate an array of constant size 0
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt\sys/utime.h(113): error C2466: cannot allocate an array of constant size 0
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt\sys/utime.h(143): error C2466: cannot allocate an array of constant size 0
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt\corecrt_wtime.h(170): warning C4133: 'function': incompatible types - from 'const time_t *const ' to 'const __time32_t *'
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt\corecrt_wtime.h(179): warning C4133: 'function': incompatible types - from 'const time_t *const ' to 'const __time32_t *'
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt\time.h(376): warning C4133: 'function': incompatible types - from 'const time_t *const ' to 'const __time32_t *'
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt\time.h(386): warning C4244: 'function': conversion from 'const time_t' to '__time32_t', possible loss of data
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt\time.h(396): warning C4133: 'function': incompatible types - from 'const time_t *const ' to 'const __time32_t *'
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt\time.h(407): warning C4133: 'function': incompatible types - from 'const time_t *const ' to 'const __time32_t *'
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt\time.h(431): warning C4133: 'function': incompatible types - from 'time_t *const ' to '__time32_t *'
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt\time.h(451): warning C4133: 'function': incompatible types - from 'const time_t *const ' to 'const __time32_t *'
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt\time.h(460): warning C4133: 'function': incompatible types - from 'const time_t *const ' to 'const __time32_t *'
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt\time.h(469): warning C4133: 'function': incompatible types - from 'const time_t *const ' to 'const __time32_t *'
NMAKE : fatal error U1077: 'C:\PROGRA~2\MICROS~1\2017\BUILDT~1\VC\Tools\MSVC\1416~1.270\bin\Hostx86\x86\cl.exe' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86\nmake.exe"' : return code '0x2'
Stop.
我正在使用 CMake,看起来我需要启用 Za 标志,因为我认为这是有效的 C99。但不确定如何启用它。
https://docs.microsoft.com/en-us/cpp/build/reference/za-ze-disable-language-extensions?view=vs-2019
/Za 编译器选项为与 ANSI C89/ISO C90 不兼容的 C 的 Microsoft 扩展禁用并发出错误。不推荐使用的 /Ze 编译器选项启用 Microsoft 扩展。默认情况下启用 Microsoft 扩展。
这是我的CMakeLists.txt文件在下面
cmake_minimum_required(VERSION 3.8)
project(raylib)
add_custom_target(makefile COMMAND phpize && ./configure -enable-debug && make
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
add_custom_target(build COMMAND make WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Za /GR /Zi /W4")
add_definitions(-DZEND_WIN32 -DPHP_WIN32 -DZEND_DEBUG=0)
add_custom_target(clean-build COMMAND phpize --clean)
set(SOURCE_FILES raylib.c raylib-vector4.c raylib-vector4.h raylib-vector3.c raylib-vector3.h raylib-vector2.c raylib-vector2.h raylib-texture.c raylib-image.c raylib-texture.h raylib-image.h raylib-utils.c raylib-utils.h raylib-window.c raylib-window.h raylib-cursor.c raylib-cursor.h raylib-draw.c raylib-draw.h raylib-timming.c raylib-timming.h raylib-rendertexture.c raylib-rendertexture.h raylib-camera3d.c raylib-camera3d.h raylib-camera2d.c raylib-camera2d.h raylib-font.c raylib-font.h raylib-text.c raylib-text.h raylib-key.c raylib-key.h raylib-mouse.c raylib-mouse.h raylib-collision.c raylib-collision.h raylib-color.c raylib-color.h raylib-rectangle.c raylib-rectangle.h)
set(RAYLIB_SOURCE C:/src/raylib-2.6.0/src)
set(PHP_SOURCE C:/php-sdk/phpmaster/vc15/x64/php-src)
include_directories(${PHP_SOURCE}/main)
include_directories(${PHP_SOURCE}/Zend)
include_directories(${PHP_SOURCE}/sapi)
include_directories(${PHP_SOURCE}/pear)
include_directories(${PHP_SOURCE}/TSRM)
include_directories(${PHP_SOURCE})
include_directories(${RAYLIB_SOURCE})
include_directories(${PROJECT_SOURCE_DIR})
add_executable(raylib ${SOURCE_FILES})
我尝试使用 CXX 标志,但我猜这些标志是用于 C++ 的。我正在使用 CMake 3.15。