首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能加载嵌入CMake的TGA图像吗?

不能加载嵌入CMake的TGA图像吗?
EN

Stack Overflow用户
提问于 2020-05-25 13:52:23
回答 1查看 100关注 0票数 2

通过添加以下内容,我试图将图像和着色器嵌入到一个opengl可执行文件中:

代码语言:javascript
复制
FUNCTION(ADD_RESOURCES out_var)
  SET(result)
  FOREACH(in_f ${ARGN})
    FILE(RELATIVE_PATH src_f ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${in_f})
    SET(out_f "${PROJECT_BINARY_DIR}/${in_f}.o")
    ADD_CUSTOM_COMMAND(OUTPUT ${out_f}
      COMMAND ld -r -b binary -o ${out_f} ${src_f}
      DEPENDS ${in_f}
      WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
      COMMENT "Building object ${out_f}"
      VERBATIM
      )
    LIST(APPEND result ${out_f})
  ENDFOREACH()
  SET(${out_var} "${result}" PARENT_SCOPE)
ENDFUNCTION()

ADD_RESOURCES(RES
    shaders/test.vert
    shaders/test.frag
    misc/a.tga
)
代码语言:javascript
复制
extern const char _binary_shaders_test_vert_start, _binary_shaders_test_vert_end;
extern const char _binary_shaders_test_frag_start, _binary_shaders_test_frag_end;
extern const unsigned char _binary_misc_a_tga_start, _binary_misc_a_tga_end;

问题是,加载的着色器工作良好,但tga不能加载。查看日志之后,我发现&_binary_misc_a_tga_end&_binary_misc_a_tga_start确实存在,尽管这些地址的值都是0。

要说清楚的是,&_binary_misc_a_tga_end&_binary_misc_a_tga_start就像那些着色的物体,没有什么奇怪的。从_binary_misc_a_tga_end_binary_misc_a_tga_start的值为0,这很奇怪。

misc/a.tga.o确实存在。我还尝试了nm命令,其结果是

代码语言:javascript
复制
000000000092a212 D _binary_misc_a_tga_end
00000000000c0012 A _binary_misc_a_tga_size
000000000086a200 D _binary_misc_a_tga_start
00000000004d0c84 t _ZN12_GLOBAL__N_118tga_decompress_RLEEPhPKhS2_iii

为什么这不能在图像文件上工作,有什么解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-26 06:54:54

实际上,我的问题与这个嵌入问题无关。成功加载了tga对象。由于我对参数的误解,图像加载库无法识别对象。

因此,我们的结论是,cmake和我的加载代码都运行良好。现在我应该删除这个问题吗?

很抱歉问了这个问题,因为我对社区规则不太熟悉。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62003836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档