0

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 とリンクされているはずではありませんか?

4

1 に答える 1