gpt4 book ai didi

c++ - 无法加载嵌入CMake的TGA图像?

转载 作者:行者123 更新时间:2023-12-01 14:57:37 25 4
gpt4 key购买 nike

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

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
)

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命令,结果是
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

为什么这对图像文件不起作用,有什么解决方案吗?

最佳答案

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

因此,结论是cmake和我的加载代码都可以正常工作。现在我应该删除这个问题吗?

抱歉,我对社区规则不太熟悉。

关于c++ - 无法加载嵌入CMake的TGA图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62003836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com