@Furkanzmc wrote:
Hi.
I'm trying to use the prebuilt libraries for Cocos2dx v3.12 on Windows using CMake (v3.4.1) with MSVC 14 (VS2015).
I both ran thecocos gen-lib
and compiled the library with the Visual Studio files.
But I get the following errors when I try to compile my game with the resulted libraries.AppDelegate.cpp.obj:-1: error: LNK2001: unresolved external symbol "public: static int const cocos2d::Scheduler::PRIORITY_SYSTEM" (?PRIORITY_SYSTEM@Scheduler@cocos2d@@2HB) HelloWorldScene.cpp.obj:-1: error: LNK2001: unresolved external symbol "public: static class cocos2d::Vec2 const cocos2d::Vec2::ZERO" (?ZERO@Vec2@cocos2d@@2V12@B)
Here's my CMakeLists.txt file:
cmake_policy(SET CMP0017 NEW) cmake_minimum_required(VERSION 3.1) set(APP_NAME CocosPrebuilt) project (${APP_NAME}) set(COCOS2D_ROOT D:/Development/Tools/Libraries/cocos2d-x-3.12) set(WINDOWS TRUE) # Some macro definitions if(WINDOWS) if(BUILD_SHARED_LIBS) ADD_DEFINITIONS (-D_USRDLL -D_EXPORT_DLL_ -D_USEGUIDLL -D_USREXDLL -D_USRSTUDIODLL) else() ADD_DEFINITIONS (-DCC_STATIC) endif() ADD_DEFINITIONS (-DCOCOS2DXWIN32_EXPORTS -D_WINDOWS -DWIN32 -D_WIN32) set(PLATFORM_FOLDER win32) elseif(MACOSX OR APPLE) ADD_DEFINITIONS (-DCC_TARGET_OS_MAC) ADD_DEFINITIONS (-DUSE_FILE32API) set(PLATFORM_FOLDER mac) elseif(LINUX) ADD_DEFINITIONS(-DLINUX) set(PLATFORM_FOLDER linux) elseif(ANDROID) ADD_DEFINITIONS (-DUSE_FILE32API) set(PLATFORM_FOLDER android) else() message( FATAL_ERROR "Unsupported platform, CMake will exit" ) endif() # Compiler options if(MSVC) ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS -wd4251 -wd4244 -wd4334 -wd4005 -wd4820 -wd4710 -wd4514 -wd4056 -wd4996 -wd4099) else() set(CMAKE_C_FLAGS_DEBUG "-g -Wall -DCOCOS2D_DEBUG=1") set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-deprecated-declarations -Wno-reorder") if(CLANG) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") endif() endif(MSVC) set(PLATFORM_SPECIFIC_SRC) set(PLATFORM_SPECIFIC_HEADERS) if(MACOSX OR APPLE) set(PLATFORM_SPECIFIC_SRC proj.ios_mac/mac/main.cpp ) elseif(LINUX) set(PLATFORM_SPECIFIC_SRC proj.linux/main.cpp ) elseif ( WIN32 ) set(PLATFORM_SPECIFIC_SRC proj.win32/main.cpp ) set(PLATFORM_SPECIFIC_HEADERS proj.win32/main.h proj.win32/resource.h ) elseif(ANDROID) set(PLATFORM_SPECIFIC_SRC proj.android-studio/app/jni/hellocpp/main.cpp ) endif() include_directories( /usr/local/include/GLFW /usr/include/GLFW ${COCOS2D_ROOT}/cocos ${COCOS2D_ROOT}/cocos/platform ${COCOS2D_ROOT}/cocos/audio/include/ Classes ) if ( WIN32 ) include_directories( ${COCOS2D_ROOT}/external/glfw3/include/win32 ${COCOS2D_ROOT}/external/win32-specific/gles/include/OGLES ) endif( WIN32 ) set(GAME_SRC Classes/AppDelegate.cpp Classes/HelloWorldScene.cpp ${PLATFORM_SPECIFIC_SRC} ) set(GAME_HEADERS Classes/AppDelegate.h Classes/HelloWorldScene.h ${PLATFORM_SPECIFIC_HEADERS} ) set(COCOS_PREBUILT ${COCOS2D_ROOT}/prebuilt/win32/websockets.lib ${COCOS2D_ROOT}/prebuilt/win32/freetype.lib ${COCOS2D_ROOT}/prebuilt/win32/glew32.lib ${COCOS2D_ROOT}/prebuilt/win32/glfw3.lib ${COCOS2D_ROOT}/prebuilt/win32/glfw3-2015.lib ${COCOS2D_ROOT}/prebuilt/win32/libbox2d.lib ${COCOS2D_ROOT}/prebuilt/win32/libbullet.lib ${COCOS2D_ROOT}/prebuilt/win32/libchipmunk.lib ${COCOS2D_ROOT}/prebuilt/win32/libchipmunk-2015.lib ${COCOS2D_ROOT}/prebuilt/win32/libcocos2d.lib ${COCOS2D_ROOT}/prebuilt/win32/libcurl_imp.lib ${COCOS2D_ROOT}/prebuilt/win32/libeay32.lib ${COCOS2D_ROOT}/prebuilt/win32/libiconv.lib ${COCOS2D_ROOT}/prebuilt/win32/libjpeg.lib ${COCOS2D_ROOT}/prebuilt/win32/libjpeg-2015.lib ${COCOS2D_ROOT}/prebuilt/win32/libmpg123.lib ${COCOS2D_ROOT}/prebuilt/win32/libogg.lib ${COCOS2D_ROOT}/prebuilt/win32/libpng.lib ${COCOS2D_ROOT}/prebuilt/win32/libpng-2015.lib ${COCOS2D_ROOT}/prebuilt/win32/librecast.lib ${COCOS2D_ROOT}/prebuilt/win32/libSpine.lib ${COCOS2D_ROOT}/prebuilt/win32/libtiff.lib ${COCOS2D_ROOT}/prebuilt/win32/libtiff-2015.lib ${COCOS2D_ROOT}/prebuilt/win32/libvorbis.lib ${COCOS2D_ROOT}/prebuilt/win32/libvorbisfile.lib ${COCOS2D_ROOT}/prebuilt/win32/libwebp.lib ${COCOS2D_ROOT}/prebuilt/win32/libzlib.lib ${COCOS2D_ROOT}/prebuilt/win32/OpenAL32.lib ${COCOS2D_ROOT}/prebuilt/win32/sqlite3.lib ${COCOS2D_ROOT}/prebuilt/win32/ssleay32.lib ) if( ANDROID ) add_library(${APP_NAME} SHARED ${GAME_SRC} ${GAME_HEADERS}) IF(CMAKE_BUILD_TYPE MATCHES RELEASE) ADD_CUSTOM_COMMAND(TARGET ${APP_NAME} POST_BUILD COMMAND ${CMAKE_STRIP} lib${APP_NAME}.so) ENDIF() else() add_executable(${APP_NAME} ${GAME_SRC} ${GAME_HEADERS}) endif() target_link_libraries(${APP_NAME} ${COCOS_PREBUILT}) set(APP_BIN_DIR "${CMAKE_BINARY_DIR}/bin") set_target_properties(${APP_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${APP_BIN_DIR}") if ( WIN32 ) #also copying dlls to binary directory for the executable to run # pre_build(${APP_NAME} # COMMAND ${CMAKE_COMMAND} -E remove_directory ${APP_BIN_DIR}/Resources # COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/Resources ${APP_BIN_DIR}/Resources # COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/external/win32-specific/gles/prebuilt/glew32.dll ${APP_BIN_DIR}/${CMAKE_BUILD_TYPE} # COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/external/win32-specific/zlib/prebuilt/zlib1.dll ${APP_BIN_DIR}/${CMAKE_BUILD_TYPE} # ) elseif( ANDROID ) else() # pre_build(${APP_NAME} # COMMAND ${CMAKE_COMMAND} -E remove_directory ${APP_BIN_DIR}/Resources # COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/Resources ${APP_BIN_DIR}/Resources # ) endif()
Does v3.12 support VS 2015? I also tried building a game with the default CMakeLists file but I got
libpng-2015.lib not found
error.
Posts: 2
Participants: 2