C++ sqlite3与cocos2d-x 3.2在vs 2013 c++;windows 7 64位上的express
我正在尝试使用MSVC 2013 express在64位windows 7上安装cocos2d-x(3.2,仅适用于windows开发)。我使用提供的“win32-msvc-2013-x86.cmd”bat文件完成了这项工作,该文件调用cmakeC++ 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)
经过常见错误(机器具有移位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引擎不是很简单吗