#include path
include_directories(
${PROJECT_SOURCE_DIR}/include
${HGE_INCLUDE_DIR}
${IKL_INCLUDE_DIR}
${BOOST_DIRECTORY}
)
#include all files
FILE(GLOB CORE_SRCS source/core/*.cpp)
FILE(GLOB TOOL_SRCS source/tools/*.cpp)
FILE(GLOB GAME_SRCS source/game/*.cpp)
#Making a compiled library
add_library(GAMECORE_LIBRARY ${CORE_SRCS} ${HGE_LIBRARY} ${HGE_HELPER_LIBRARY})
#add executable
add_executable(DemoGame ${GAME_SRCS})
##link executable to HGE lib
TARGET_LINK_LIBRARIES(DemoGame ${HGE_LIBRARY} ${HGE_HELPER_LIBRARY} ${IKL_LIBRARY} GAMECORE_LIBRARY)
if(BUILD_TOOLS)
add_executable(EntityTool ${TOOL_SRCS})
TARGET_LINK_LIBRARIES(EntityTool ${HGE_LIBRARY} ${HGE_HELPER_LIBRARY} ${IKL_LIBRARY} GAMECORE_LIBRARY)
endif(BUILD_TOOLS)
これは私の現在のcmakeです..
hgeGUI クラスで奇妙なリンカ エラーが発生します
。例: DemoGame/source/core/GameMainMenu.cpp:74: undefined reference to `hgeGUI::hgeGUI()'
これは、コア ファイルをスタティック ライブラリにコンパイルしようとしたときにのみ発生します。CORE_SRCS を使用して実行可能ファイルを追加し、現在コンパイルされているライブラリの依存関係を削除すると、正常に動作します..
また、hgegui.cpp ファイルをコア ソース ディレクトリにコピーして貼り付けてみました#include "..\..\include\hgegui.h"
。#include "hgegui.h"
その後、私のリンカーコードは問題を解決しますが、セグメンテーション違反が発生しますが、前のステップでファイルをリンクすることが正しくなかったと推測しています..
.h ファイルへのリンクは次のとおりです
http://trac.assembla.com/snowscape/browser/hge/include/hgegui.h