Sor*_*his 2 c++ cmake clion bgfx
所以,我有一个 C++ 项目,我想在其中可视化内容(实时),所以我正在寻找渲染引擎,并找到了bgfx。
我不经常写 c++ 的东西,使用第三方项目似乎令人难以置信的费力,但也许我只是做错了一切,希望你能把我推向正确的方向。
我的第一次尝试是在 linux 上,我克隆了bgfx.cmake并遵循自述文件,然后我使用make installwhich 将库安装到“/usr/local/include”。
这起初似乎有效,因为我的 IDE (CLion) 在使用#import.
然后我尝试使 HelloWorld 示例工作。我最终将 bgfx 示例文件夹复制到我的项目中的子文件夹“第三方”下,因为所有示例都高度使用了“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"
Run Code Online (Sandbox Code Playgroud)
再次出现相同的错误,我的 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)
Run Code Online (Sandbox Code Playgroud)
我的 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")
Run Code Online (Sandbox Code Playgroud)
在那之后,我尝试使用fips进行设置, 在我向依赖项添加了一些符号链接后,它起作用了
(类似于链接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)
Run Code Online (Sandbox Code Playgroud)
到我的 CMakeLists.txt 我收到下一个错误:
/usr/bin/ld:thirdparty/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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2042 次 |
| 最近记录: |