所以,我有一个C++项目,我想要可视化的东西(实时),所以我正在寻找一个渲染引擎,并发现bgfx。正确设置bgfx(和项目结构)
我不会经常写C++的东西,而使用第三方项目似乎令人难以置信 辛苦,但也许我只是做了一切错误,希望你能把我推向正确的方向。
我的第一次尝试是在Linux上,我克隆bgfx.cmake并遵循自述,然后我 使用make install
其安装在图书馆的到“的/ usr /本地/包括”。
这似乎起初工作,因为我的IDE(CLION)在使用#import
时识别bgfx。
然后我试着让HelloWorld例子工作。我最终将bgfx示例文件夹复制到我的项目下的子文件夹“thirdparty”中,因为所有示例都高度使用“examples/common”文件夹。
,我想我做什么毛病我的CMakeLists.txt,因为虽然我的IDE可以解决和自动完成一切,我得到一个编译错误,当我尝试运行项目:上线
Unresolved references 'entry::runApp(entry::AppI*, int, char**)'
ENTRY_IMPLEMENT_MAIN(ExampleClass)
其中ENTRY_IMPLEMENT_MAIN是bgfx定义的宏(here)。
几个烦人小时,我决定从头开始后
:
我犯了一个项目“bgfx_test”与在第三方文件夹我克隆bgfx.cmake项目子文件夹“第三方”,并补充add_subdirectory("thirdparty/bgfx.cmake")
到我的CMakeLists.txt
我再次做了一个main.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一个小小的例子,或只是告诉我,什么是错与我
编辑2(2017年5月27日):在我
加入
target_link_libraries(bgfx_test bx)
target_link_libraries(bgfx_test bgfx)
target_link_libraries(bgfx_test bimg)
我的CMakeLists.txt我得到了一个错误:
/usr/bin/ld: thirdparty/bgfx.cmake/libbgfxd.a(glcontext_glx.cpp.o): undefined reference to symbol 'XFree'
//usr/lib/x86_64-linux-gnu/libX11.so.6: error adding symbols: DSO missing from command line
其中唯一有用的命中谷歌产生是this,但它是没有答案:/
你希望有人写** **骨架例子为'bfgx'?这太宽泛了。你想帮助**现有的**例子吗?那么你需要提供它的代码。另外,在问题结尾处,您似乎可以解决问题。那么,你想**完全**? – Tsyvarev
我试图澄清一点:我只是想使用bgfx作为第三方应用程序,而不是在他们的示例文件夹中编写我的代码。我想知道为什么我的IDE可以解决所有问题,但编译器会报错。 为什么使用第三方软件设置C++项目本质上很难? – Soraphis
当自动完成时,IDE会查找*声明该函数的标头。错误“无法解析的参考”意味着找不到函数的**定义**。函数在'.c'代码中或在您链接的库中定义。 – Tsyvarev