Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ sqlite3与cocos2d-x 3.2在vs 2013 c++;windows 7 64位上的express_C++_Visual Studio_Sqlite_Cocos2d X - Fatal编程技术网

C++ sqlite3与cocos2d-x 3.2在vs 2013 c++;windows 7 64位上的express

C++ sqlite3与cocos2d-x 3.2在vs 2013 c++;windows 7 64位上的express,c++,visual-studio,sqlite,cocos2d-x,C++,Visual Studio,Sqlite,Cocos2d X,我正在尝试使用MSVC 2013 express在64位windows 7上安装cocos2d-x(3.2,仅适用于windows开发)。我使用提供的“win32-msvc-2013-x86.cmd”bat文件完成了这项工作,该文件调用cmake 经过常见错误(机器具有移位JIS区域),微软C++编译器拒绝识别UTF8编码,除非它有BOM,这导致在移位JIS区域中编译错误,如果将Unicode字符串放入文件(COCOS2D-X有很多),那么我就到了一个单子项目(CPP TestsSpRyBug)

我正在尝试使用MSVC 2013 express在64位windows 7上安装cocos2d-x(3.2,仅适用于windows开发)。我使用提供的“win32-msvc-2013-x86.cmd”bat文件完成了这项工作,该文件调用cmake

经过常见错误(机器具有移位JIS区域),微软C++编译器拒绝识别UTF8编码,除非它有BOM,这导致在移位JIS区域中编译错误,如果将Unicode字符串放入文件(COCOS2D-X有很多),那么我就到了一个单子项目(CPP TestsSpRyBug)的点。拒绝编译,因为它找不到sqlite3.h和sqlite3.lib

所以。通过cocos2d-x项目快速搜索发现sqlite3.h在那里,sqlite3.lib丢失,sqlite3.h存储在“外部”子目录中,该子目录通常被排除在编译之外(显然它只是android)

Sqlite3网站有两个vsix文件(sqlite-winrt-3080704.vsix和sqlite-winrt81-3080704.vsix),据我所知,它们应该全局安装Sqlite3.h和lib。我已经下载并安装了它们,即使在安装之后,sqlite3.h在全局包含路径中也不可见(即使在重新启动msvc之后),并且sqlite3.h实际上并没有安装在任何地方


所以。。。我可以拆分*.vsix文件extract*.h和*.lib并将它们放入cocos2d-x子目录中,编译器可以在其中找到它们,但要使其正常工作,正确的方法是什么?

只有在您尝试为3.2版编译cocos2d-x测试时,才需要执行以下步骤。正常应用程序使用不需要它们


经过多次发布,我终于在vs2013 express上编译了这个东西

使用的变通方法:


在cocos2d中,root/CMakeLists.txt必须更改

if(WIN32)

  if(NOT MINGW)
  link_directories(
    ${CMAKE_CURRENT_SOURCE_DIR}/external/jpeg/prebuilt/${PLATFORM_FOLDER}
    ${CMAKE_CURRENT_SOURCE_DIR}/external/tiff/prebuilt/${PLATFORM_FOLDER}
    ${CMAKE_CURRENT_SOURCE_DIR}/external/png/prebuilt/${PLATFORM_FOLDER}
    ${CMAKE_CURRENT_SOURCE_DIR}/external/freetype2/prebuilt/${PLATFORM_FOLDER}
    ${CMAKE_CURRENT_SOURCE_DIR}/external/curl/prebuilt/${PLATFORM_FOLDER}
    ${CMAKE_CURRENT_SOURCE_DIR}/external/${PLATFORM_FOLDER}-specific/icon/prebuilt
    ${CMAKE_CURRENT_SOURCE_DIR}/external/${PLATFORM_FOLDER}-specific/zlib/prebuilt
  )
  endif()

elseif(APPLE)
if(WIN32 AND MSVC)
  #get our resources
  add_custom_command(TARGET ${APP_NAME} PRE_BUILD
                     COMMAND ${CMAKE_COMMAND} -E copy_directory
                         ${CMAKE_CURRENT_SOURCE_DIR}/Resources ${CMAKE_CURRENT_BINARY_DIR})
  #get our dlls
  add_custom_command(TARGET ${APP_NAME} PRE_BUILD
                     COMMAND ${CMAKE_COMMAND} -E copy
                     ${CMAKE_CURRENT_SOURCE_DIR}/../../../external/win32-specific/gles/prebuilt/glew32.dll 
                     ${CMAKE_CURRENT_BINARY_DIR})

  add_custom_command(TARGET ${APP_NAME} PRE_BUILD
                     COMMAND ${CMAKE_COMMAND} -E copy
                     ${CMAKE_CURRENT_SOURCE_DIR}/../../../external/win32-specific/zlib/prebuilt/zlib1.dll 
                     ${CMAKE_CURRENT_BINARY_DIR}/Debug)

  #Visual Studio Defaults to wrong type
  set_target_properties(${APP_NAME} PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:WINDOWS")
  set_target_properties(${APP_NAME} PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS")
else()

因为在其他方面,多个测试解决方案未能与gles、websockets、glfwv、sqlite3和几乎所有内容链接


在cocos2d_root/tests/cpp empty test/CMakeLists.txt中,必须进行更改

if(WIN32)

  if(NOT MINGW)
  link_directories(
    ${CMAKE_CURRENT_SOURCE_DIR}/external/jpeg/prebuilt/${PLATFORM_FOLDER}
    ${CMAKE_CURRENT_SOURCE_DIR}/external/tiff/prebuilt/${PLATFORM_FOLDER}
    ${CMAKE_CURRENT_SOURCE_DIR}/external/png/prebuilt/${PLATFORM_FOLDER}
    ${CMAKE_CURRENT_SOURCE_DIR}/external/freetype2/prebuilt/${PLATFORM_FOLDER}
    ${CMAKE_CURRENT_SOURCE_DIR}/external/curl/prebuilt/${PLATFORM_FOLDER}
    ${CMAKE_CURRENT_SOURCE_DIR}/external/${PLATFORM_FOLDER}-specific/icon/prebuilt
    ${CMAKE_CURRENT_SOURCE_DIR}/external/${PLATFORM_FOLDER}-specific/zlib/prebuilt
  )
  endif()

elseif(APPLE)
if(WIN32 AND MSVC)
  #get our resources
  add_custom_command(TARGET ${APP_NAME} PRE_BUILD
                     COMMAND ${CMAKE_COMMAND} -E copy_directory
                         ${CMAKE_CURRENT_SOURCE_DIR}/Resources ${CMAKE_CURRENT_BINARY_DIR})
  #get our dlls
  add_custom_command(TARGET ${APP_NAME} PRE_BUILD
                     COMMAND ${CMAKE_COMMAND} -E copy
                     ${CMAKE_CURRENT_SOURCE_DIR}/../../../external/win32-specific/gles/prebuilt/glew32.dll 
                     ${CMAKE_CURRENT_BINARY_DIR})

  add_custom_command(TARGET ${APP_NAME} PRE_BUILD
                     COMMAND ${CMAKE_COMMAND} -E copy
                     ${CMAKE_CURRENT_SOURCE_DIR}/../../../external/win32-specific/zlib/prebuilt/zlib1.dll 
                     ${CMAKE_CURRENT_BINARY_DIR}/Debug)

  #Visual Studio Defaults to wrong type
  set_target_properties(${APP_NAME} PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:WINDOWS")
  set_target_properties(${APP_NAME} PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS")
else()

因为../../../../external指向项目目录之外,而其中没有任何内容


在cpp测试和cpp测试中,必须手动添加ws2_32作为ifdef

cpp测试/CMakeLists.txt:

if(WIN32 AND MSVC)
  target_link_libraries(${APP_NAME}
    spine
    cocostudio
    cocosbuilder
    extensions
    audio
    cocos2d
    box2d
    ws2_32
  )
else()
  target_link_libraries(${APP_NAME}
    spine
    cocostudio
    cocosbuilder
    extensions
    audio
    cocos2d
    box2d
  )
endif()
cpp空测试/CMakeLists.txt

if(WIN32 AND MSVC)
  target_link_libraries(${APP_NAME} audio cocos2d ws2_32)
else()
  target_link_libraries(${APP_NAME} audio cocos2d)
endif()
因为除此之外,我一直在获取WSA函数的未解析外部


在cpp tests/CMakeLists.txt中,必须添加WIN32标记以添加_可执行文件,因为否则编译器不会看到tWinMainStartup

if(WIN32 AND MSVC)
  # add the executable
  add_executable(${APP_NAME} WIN32
    ${SAMPLE_SRC}
  )
else()
  # add the executable
  add_executable(${APP_NAME}
    ${SAMPLE_SRC}
  )
endif()

不得不将utf8 BOM标记添加到多个文件中,因为没有utf8,Microsoft编译器无法识别utf8,并且在shift jis区域设置中,注释部分中的恶意字符可能会在其他地方导致编译错误


此外,我还收到了大量关于crt库冲突的警告,希望它们与正在预编译的sqlite3和glew有关

总的来说,我对这里缺少响应和编译器错误的数量感到相当失望。安装2d引擎不是很简单吗