因此,我有一个C++项目,我想(实时)可视化内容,因此我正在寻找一个渲染引擎,并找到了bgfx。
我不经常写c++东西,而且使用第三方项目似乎令人难以置信
费力,但也许我只是做错了一切,希望您能将我推向正确的方向。
我的第一次尝试是在Linux上,我克隆了bgfx.cmake并遵循了自述文件,然后我
使用make install
将库安装到“/ usr / local / include”。
这似乎起初是可行的,因为使用#import
时,我的IDE(CLion)可以识别bgfx。
然后,我尝试使HelloWorld示例工作。我最后将bgfx examples文件夹复制到子文件夹“thirdparty”下的项目中,因为所有示例都充分利用了“examples / common”文件夹。
而且我认为我的CMakeLists.txt出了点问题,因为尽管我的IDE可以解析并自动完成所有操作,但是当我尝试运行该项目时却遇到了编译器错误:Unresolved references 'entry::runApp(entry::AppI*, int, char**)'
在ENTRY_IMPLEMENT_MAIN(ExampleClass)
行上,其中ENTRY_IMPLEMENT_MAIN是bgfx定义的宏(here)。
经过几个烦人的小时,我决定从头开始:
我在第三方文件夹中用子文件夹“thirdparty”创建了一个项目“bgfx_test”,我克隆了bgfx.cmake项目,并将add_subdirectory("thirdparty/bgfx.cmake")
添加到了我的CMakeLists.txt中
我再次做了一个main.cpp,在其中我从bgfx示例中添加了ExampleHelloWorld类。
我将其更改为具有空的update()方法,因此我不需要示例中的logo.h和screeshot.png文件。我将include更改为:
#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**)'
( Unresolved reference )如果有人可以帮助我,那真棒
我的文件夹结构:
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进行设置
在我向依赖项添加了一些符号链接(symbolic link)后,它起作用了
(类似于将
libXinerama.so
链接到libXinerama.so.1
,因为fips找不到结尾处带有'.1'的字符串)所以现在我可以运行示例,甚至可以在工作的Windows上设置项目-至少对于示例而言。
但我真的很想不在“bgfx / exampels”文件夹中编写我的应用程序
但是即使以这种方式设置,我也无法在它之外工作
编辑
因为它似乎还不够清楚:
我的问题:
看到一个CMakeLists.txt作为一个小例子,或者只是告诉我我的问题怎么了,这真是太好了
编辑2(27.05.2017):
在我添加之后
target_link_libraries(bgfx_test bx)
target_link_libraries(bgfx_test bgfx)
target_link_libraries(bgfx_test bimg)
到我的CMakeLists.txt我得到下一个错误:谷歌产生的唯一有用的命中词是this,但未得到回答:/
最佳答案
它与此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)
关于c++ - 正确设置bgfx(和项目结构),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44199997/