我下载了最新版本的 Cocos2dx (v3.4)。我之前为 Sqlite 编写了一个包装器,我想在我的新项目中使用它。但是当我添加与项目目录不同的目录时,我不能在 EasySqlite.h 文件中包含 sqlite3.h。编译器给出C:\Users\**\Desktop\**Project\Utilities\Backend\EasySqlite.h:3: error: C1083: Cannot open include file: 'sqlite3.h': No such file or directory
这是我的 CMakeLists.txt 文件的一部分:
set(UTILITIES_SRC
../../Utilities/Backend/CommonVariables.cpp
../../Utilities/Backend/EasySqlite.cpp
../../Utilities/Backend/GameRecordManager.cpp
../../Utilities/Backend/ResourcesDatabaseManager.cpp
../../Utilities/Backend/Statistics.cpp
../../Utilities/Backend/StudentManager.cpp
../../Utilities/Backend/Toolbox.cpp
)
set(UTILITIES_HEADERS
../../Utilities/Backend/CommonVariables.h
../../Utilities/Backend/EasySqlite.h
../../Utilities/Backend/GameRecordManager.h
../../Utilities/Backend/ResourcesDatabaseManager.h
../../Utilities/Backend/Statistics.h
../../Utilities/Backend/StudentManager.h
../../Utilities/Backend/Toolbox.h
)
set(GAME_SRC
Classes/AppDelegate.cpp
Classes/TitleScreen.cpp
Classes/SplashScreen.cpp
Classes/Cocos2dxUtils.cpp
${PLATFORM_SPECIFIC_SRC}
${UTILITIES_SRC}
)
set(GAME_HEADERS
Classes/AppDelegate.h
Classes/TitleScreen.h
Classes/SplashScreen.h
Classes/Cocos2dxUtils.h
${PLATFORM_SPECIFIC_HEADERS}
${UTILITIES_HEADERS}
)
if(GAME_HEADERS)
add_executable(${APP_NAME} ${GAME_SRC} ${GAME_HEADERS})
else()
add_executable(${APP_NAME} ${GAME_SRC})
endif()
当我给出 sqlite3.h 文件的完整路径时,就像#include "C:\Users\..\..\sqlite3.h"
我得到链接器错误一样。
EasySqlite.cpp.obj:-1: error: LNK2019: unresolved external symbol _sqlite3_close referenced in function "public: struct std::pair<struct sqlite3 *,int> __thiscall EasySqlite::openDatabase(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,bool)" (?openDatabase@EasySqlite@@QAE?AU?$pair@PAUsqlite3@@H@std@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@3@_N@Z)
当我移动上面提到的文件并将它们移动到 cocos2dx 项目中的 Classes 目录时,即使我可以在 AppDelegate.h 文件中包含 sqlite3.h 文件,我仍然无法将它包含在 EasySqlite.h 中
sqlite 不应该已经与 Cocos2dx 链接了吗?