正确设置 BGFX(和项目结构)
correctly setup bgfx (and project structure)
所以,我有一个 c++ 项目,我想(实时)可视化东西,所以我正在寻找一个渲染引擎,并找到了 bgfx。
我不经常写c ++的东西,使用第三方项目似乎令人难以置信 费力,但也许我只是做错了一切,希望你能把我推向正确的方向。
我的第一次尝试是在 linux 上,我克隆了 bgfx.cmake 并按照自述文件进行操作,然后我 用于将库安装到"/usr/local/include"的make install
。
这起初似乎有效,因为我的 IDE (CLion) 在使用#import
时识别了 bgfx。
然后我尝试使HelloWorld示例工作。 我最终将 BGFX 示例文件夹复制到我的项目中的子文件夹"第三方"下,因为所有示例都大量使用"示例/通用"文件夹。
我认为我的 CMakeList 出了点问题.txt因为虽然我的 IDE 可以解决并自动完成所有内容,但在尝试运行项目时出现编译器错误:
Unresolved references 'entry::runApp(entry::AppI*, int, char**)'
在行ENTRY_IMPLEMENT_MAIN(ExampleClass)
ENTRY_IMPLEMENT_MAIN是 BGFX 定义的宏(此处)。
经过几个小时的烦人,我决定从头开始:
我在克隆 bgfx.cmake 项目的第三方文件夹中使用子文件夹"第三方"制作了一个项目"bgfx_test",并将add_subdirectory("thirdparty/bgfx.cmake")
添加到我的 CMakeList 中.txt
我再次做了一个主要.cpp我从 bgfx 示例中添加了 ExampleHelloWorld 类。
我将其更改为具有空的update()方法,因此我不需要示例中的logo.h和screeshot.png文件。 我将包含更改为:
#include "thirdparty/bgfx.cmake/bgfx/examples/common/common.h"
#include "thirdparty/bgfx.cmake/bgfx/examples/common/bgfx_utils.h"
再次出现相同的错误,我的IDE自动完成所有内容,但编译器说:
Nicht definierter Verweis auf 'entry::runApp(entry::AppI*, int, char**)'
(未解决的引用)
如果有人能帮我解决这个问题,那就太棒了
我的文件夹结构:
project-root
main.cpp
CMakeLists.txt
thirdparty
bgfx.cmake (clone of the repo mentioned above)
我的CMakeLists.txt:
cmake_minimum_required(VERSION 3.7)
project(bgfx_test)
set(CMAKE_CXX_STANDARD 14)
set(SOURCE_FILES main.cpp)
add_executable(bgfx_test ${SOURCE_FILES})
add_subdirectory("thirdparty/bgfx.cmake")
之后,我尝试使用 FIPS 进行设置 在我向依赖项添加了一些符号链接后,它起作用
了(诸如将libXinerama.so
链接到libXinerama.so.1
之类的东西,因为FIPS找不到末尾带有".1"的它)
所以现在我可以运行示例,甚至可以在 Windows 上设置项目 - 至少对于示例而言。
但我真的不想在"BGFX/exampels"文件夹中编写我的应用程序
但是我无法让它在它之外工作,即使以这种方式设置
编辑
因为它似乎不够清楚:
我的问题:
- 为什么我会收到未解决的引用错误? 这对我来说根本没有意义。
- 在窗口(如文档中)或通过 fips 设置 bgfx 时,如何在不将代码写入第三方库的"示例"文件夹中的情况下使其工作?
看到一个CMakeLists会很棒.txt举一个小例子,或者只是告诉我我的有什么问题
>edit 2 (27.05.2017):我添加后
target_link_libraries(bgfx_test bx)
target_link_libraries(bgfx_test bgfx)
target_link_libraries(bgfx_test bimg)
到我的CMakeList.txt我收到下一个错误:
/usr/bin/ld: 第三方/bgfx.cmake/libbgfxd.a(glcontext_glx.cpp.o):对符号"XFree"的未定义引用
//usr/lib/x86_64-linux-gnu/libX11.so.6:添加符号时出错:命令行中缺少DSO。
谷歌产生的唯一有用的命中是这个,但它没有答案:/
它适用于这个CMakeLists.txt:
cmake_minimum_required(VERSION 3.7)
project(bgfx_test)
set(CMAKE_CXX_STANDARD 14)
set(SOURCE_FILES main.cpp)
add_subdirectory("thirdparty/bgfx.cmake")
add_executable(bgfx_test ${SOURCE_FILES} )
target_link_libraries(bgfx_test bgfx example-common)
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- 用于对项目进行分组并将单个项目映射到其他组成员的数据结构
- 如何使用矢量元素将项目添加到结构中?
- 在OSx:ld上使用CMake构建C++项目:找不到体系结构x86_64的符号
- 项目的生成文件,代码位于多个目录中,但目录结构相同
- CMake 项目结构:如何正确地将库合并在一起并将它们包含在多个可执行文件中
- 正确设置 BGFX(和项目结构)
- 无法生成项目,出现错误 - 未定义的体系结构符号 x86_64:"_JNI_CreateJavaVM"
- C :多文件C 项目中的相互引用的结构
- 与公开暴露的标头有关的C 项目结构
- Windows MSG 结构与旧项目代码结构 MSG 冲突
- 在类中使用结构时,我不断收到错误 C2797,并且它只发生在特定项目中
- 单源项目结构的缺点是什么?
- C 使用字符串项目在列表中查找结构
- 多平台C++项目结构
- Qt项目结构
- 在Visual Studio 15社区中构建Lua的解决方案/项目结构
- Visual Studio 2010 C++项目结构
- c++ makefile构建多个dll和项目结构
- CMake:具有单元测试的项目结构