【发布时间】:2012-05-24 01:22:39
【问题描述】:
#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 类链接器错误
eg : 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
【问题讨论】:
-
请不要将 [已解决] 添加到您的目标。如果您的问题得到解答,请接受最有帮助的答案。
标签: c++ linker cmake linker-errors