为QNX 7.0的EB GUIDE 6.8编译和链接着色器小部件可以正常工作,但是当GTF打开共享对象时,出现错误消息:
控制台上的undefined reference to `typeinfo for gtf::scdr::RenderObjectBase'和插件不起作用(未加载)。

我检查了命名类型的用法,但未使用它。

GTF应该能够加载共享对象并执行小部件。

最佳答案

在启用RTTI的情况下编译插件时,通常会显示此消息。 GTF无需RTTI即可编译。

将此-fno-rtti添加到编译器调用中应该可以解决该问题。

例如,在使用CMake的情况下,您可以在工具链文件中执行此操作:

if (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "QNX")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
    message(STATUS "disabled RTTI for Linux/Qnx")
endif ()

顺便说一句,在为Linux进行编译时,链接共享库时已经收到此错误消息。有关更多信息,另请参见g++ undefined reference to typeinfo

关于c++ - EB指南:在QNX上加载着色器插件时,缺少对gtf::scdr::RenderObjectBase的 undefined reference ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58542437/

10-13 00:55