我有一串大约17kb长的信息字符串。我的程序不会生成此字符串,也不会将其读入缓冲区 - 数据已经初始化,我希望它能像静态变量一样在我的代码中编译。此外,我更希望它存在于我的可执行文件中,而不是存储在项目文件中。我以前从未遇到过这样的问题,请问最好的解决方法是什么?我应该将其作为资源包含,还是直接将巨大的数据流复制粘贴到变量中?您推荐哪种方法?(注:使用VisualStudio C++ 2015)
ld
可以直接将自定义数据包含为目标文件的 .data
段: ld -r -b binary -o example.o example.txt
example.o
文件定义了访问嵌入数据的起始和结束符号(只需使用objdump
查看文件即可查看它们的命名)。unsigned char const * const data = {
0x12, 0x34, 0x56 };
xdd
),但我不知道它是否对您可用。一个潜在的问题是,您可能会通过这种方式达到字符串文字长度限制。为了解决这个问题,您可以尝试使用(多维)字符数组。
.cpp
**文件中,这意味着它仍将被编译,并且忽略它将导致链接错误。 - Angew is no longer proud of SO