编译期间MSVC中的字符串长度限制? 我将C++代码从Linux转换成Windows(使用Visual Studio 2013)。但是MSVC对字符串有长度限制(大约2048字节?),而GCC没有。我的问题是,有一个配置文件包含几个巨大的字符串,它在GCC下运行良好。但MSVC报告编译错误为
错误C2026:字符串太大,尾随字符被截断 字符串非常简单,编译期间MSVC中的字符串长度限制? 我将C++代码从Linux转换成Windows(使用Visual Studio 2013)。但是MSVC对字符串有长度限制(大约2048字节?),而GCC没有。我的问题是,有一个配置文件包含几个巨大的字符串,它在GCC下运行良好。但MSVC报告编译错误为,c++,gcc,string-length,C++,Gcc,String Length,错误C2026:字符串太大,尾随字符被截断 字符串非常简单,CONFIGSTRING很大 const std::string CONFIGSTRING="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; 这个问题有什么解决办法吗?我是否可以在windows下使用GCC将配置文件单独编译为对象文件,并将其链接到其他文件?如果可能的话,任何人都可以简单地告诉我怎么做?根据MSDN文档,这应该可以: const std::string str = "xxxx" // Max 20
CONFIGSTRING
很大
const std::string CONFIGSTRING="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
这个问题有什么解决办法吗?我是否可以在windows下使用GCC将配置文件单独编译为对象文件,并将其链接到其他文件?如果可能的话,任何人都可以简单地告诉我怎么做?根据MSDN文档,这应该可以:
const std::string str =
"xxxx" // Max 2048 bytes
"xxxx" // Max 2048 bytes
// ... and so on (up to 65535 bytes)
;
如果这仍然不够,请执行以下操作:
std::string str;
str = "part1";
str += "part2";
str += "part3"; // And so on.
我是否可以在windows下使用GCC将配置文件单独编译为对象文件,并将其链接到其他文件
不,它们使用的是不同的C++标准库。
你在谈论什么样的字符串?代码>标准::字符串?您可以发布一行代码来表示您试图解决的问题吗?@NathanOliver已经按照建议()执行了,但示例是“char sz[]=”,我的案例是“string CONFIGSTRING=“xxxxxxxx”。不确定()是否适用于字符串。它将起作用。编译器抱怨的不是const std::string
,而是你用来构造它的非常大的字符串文本。我可以确认第一种方法是有效的,我将我的字符串分成2000字节的段,总计30000字节。