Ограничение длины строки в MSVC во время компиляции?
Я конвертирую C++ коды из Linux в Windows (используя Visual Studio 2013). Но MSVC имеет ограничение на длину строки (около 2048 байт?), А GCC - нет. Моя проблема в том, что есть файл конфигурации, содержащий несколько огромных строк, он хорошо работает в GCC. Но MSVC сообщает об ошибке компиляции как
ошибка C2026: строка слишком большая, завершающие символы усекаются.
Строка довольно проста, CONFIGSTRING
огромный.
const std::string CONFIGSTRING="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
Любое решение для этой проблемы? Могу ли я отдельно скомпилировать файл конфигурации в объектный файл, используя GCC под Windows, и связать его с другими файлами? Если возможно, кто-нибудь может кратко показать мне, как это сделать?
1 ответ
Согласно документам 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.
Могу ли я отдельно скомпилировать файл конфигурации в объектный файл, используя GCC под Windows, и связать его с другими файлами?
Нет, они используют разные стандартные библиотеки C++.