奇怪的链接器错误
Weird Linker Error
#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:未定义的对'hgeGUI::hgeGUI()'的引用
仅当我尝试将核心文件编译为静态库时,才会发生这种情况。当我添加带有CORE_SRCS可执行文件并删除当前编译库的依赖项时..它会正常工作..
我也尝试将 hgegui.cpp 文件复制粘贴到我的核心源目录中.. 并将#include "....includehgegui.h"
更改为 #include "hgegui.h"
之后,我的链接器代码解决了问题,但我得到了分段错误,但我猜上一步中链接文件不正确..
这是他们的.h文件
的链接http://trac.assembla.com/snowscape/browser/hge/include/hgegui.h
看起来您滥用了${HGE_LIBRARY}
和${HGE_HELPER_LIBRARY}
变量。
在add_library
调用中,您将包括构成该库的所有源文件。
在target_link_libraries
调用中,指定链接目标时要使用的库或标志。
因此,如果${HGE_LIBRARY}
和${HGE_HELPER_LIBRARY}
指定要指定为GAMECORE_LIBRARY
依赖项的库的路径,则需要执行以下操作:
add_library(GAMECORE_LIBRARY ${CORE_SRCS})
target_link_libraries(GAMECORE_LIBRARY ${HGE_LIBRARY} ${HGE_HELPER_LIBRARY})
依赖项是可传递的,因此这意味着当您将GAMECORE_LIBRARY
指定为 DemoGame
和 EntityTool
的依赖项时,CMake 会识别${HGE_LIBRARY}
和${HGE_HELPER_LIBRARY}
也是依赖项,因此您可以根据需要从target_link_libraries
调用中删除它们DemoGame
和EntityTool
。
有关add_library
和target_link_libraries
的更多信息,请运行:
cmake --help-command add_library
cmake --help-command target_link_libraries
- Netbeans 10:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- CMake 错误:链接器命令失败,退出代码为 1 和 cpp.o 文件
- clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) - 体系结构的未定义符号 x86_64:
- 如何修复 clang: 错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- Android NDK.Build命令失败.未定义的引用.clang++:错误:链接器命令失败,退出代码为1
- 使用cmake错误链接boost日志
- 错误:链接器命令失败,退出代码为 1(使用 -v 查看调用):在 Macbook 上
- C++ XCODE ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -
- clang:错误:链接器命令失败,C++代码中的退出代码为 1(使用 -v 查看调用)
- 静态库中的 g++ 错误链接函数
- 未定义的参考错误链接天然函数Android
- C++编译错误:ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v
- QT Q_PROPERTY错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- OSX MOJAVE -LD:架构X86_64 clang找不到符号:错误:链接器命令失败,出口代码1
- C 错误链接器命令失败了出口代码1(使用-V查看调用)
- LD:架构x86_64 clang找不到符号:错误:链接器命令失败,出口代码1(使用-v to See
- 聚输出错误 - 链接列表
- Xcode链接器错误:链接器命令失败,退出代码为1(使用-v查看调用)
- 尝试构建C DLIB示例无法与数百个未定义的参考错误链接