如何链接项目符号库(来自FindBullet.cmake)?
How to link bullet libraries(from FindBullet.cmake)?
我正在开发一个游戏,正在尝试使用子弹。但是,(似乎)我在链接项目符号库时遇到问题。编辑2:我在github上有我的代码
这实际上是我第一次使用cmake。我已经搜索了 FindBullet.cmake 文件,可以找到变量来链接库(${BULLET_LIBRARIES}),但链接变量中的库并没有做任何事情。
find_package(Bullet REQUIRED)
include_directories(${BULLET_INCLUDE_DIR})
target_link_libraries(3DPlatformer ${BULLET_LIBRARIES})
我希望我的代码能够编译,但相反,我得到了一堆"未定义的引用",然后是它读取的项目符号中的任何函数。 编辑:
more undefined references to `btAlignedAllocInternal(unsigned long, int)' follow
^ 这就是我得到的一堆
collect2: error: ld returned 1 exit status
这是最后一个错误。 完全错误
需要安装libbullet-dev
。
sudo apt-get install libbullet-dev
我的问题是我的一个 if 语句被破坏了。 我的 if 语句:
if(USE_SYSTEM_BULLET)
find_package(Bullet REQUIRED)
include_directories(${BULLET_INCLUDE_DIR})
target_link_libraries(3DPlatformer ${BULLET_LIBRARIES} -lGL -lGLU)
else(USE_SYSTEM_BULLET)
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/bullet" )
include_directories("${PROJECT_SOURCE_DIR}/lib/bullet/src")
endif(USE_SYSTEM_BULLET)
以某种方式触发了所有代码而不是其中一些代码。 像这样注释代码:
#if(USE_SYSTEM_BULLET)
find_package(Bullet REQUIRED)
include_directories(${BULLET_INCLUDE_DIR})
target_link_libraries(3DPlatformer ${BULLET_LIBRARIES} -lGL -lGLU)
#else(USE_SYSTEM_BULLET)
# add_subdirectory("${PROJECT_SOURCE_DIR}/lib/bullet" )
# include_directories("${PROJECT_SOURCE_DIR}/lib/bullet/src")
#endif(USE_SYSTEM_BULLET)
修复了它。
相关文章:
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- 2D数组来自文本输入,中间有空格
- 通过继承类使用来自不同命名空间的运算符
- Cuda C++:设备上的Malloc类,并用来自主机的数据填充它
- C++:来自外部文件的Trivia
- 如何处理来自核心指南检查器的关于gsl::at的静态分析警告
- 针对遗留库的链接:来自预制makefile的-lgfortranbegin
- 如何在C++中正确引用来自不同类的类的对象?
- Qt中来自不同功能的按钮引用
- C++包含来自 #include "DevEngine/Core.h" 的错误
- Eigen c++ 三角形来自
- 来自 DLL 的函数调用 [表观调用的括号前面的表达式必须具有(指向-)函数类型]
- 来自 Android 应用程序内部的 boost 类型的 boost::wrapexcept<boost::system::system_error> 的未捕获异常
- 中止信号来自 C++ 中的中止(3) (SIGABRT)
- 如何多次询问来自QML对话框的输入?
- 如何强制 Thrift 仅接受来自本地主机的连接
- 使 ld 忽略来自 /etc/ld.so.conf 的目录
- 来自逆 vp 矩阵和相机位置的光线方向不正确
- 来自colPivHouseholderQr().solve的拟合相关性
- 如何链接项目符号库(来自FindBullet.cmake)?