Я работаю над небольшим проектом, чтобы попытаться получить код Source Engine 2013, работающий под IDt Qt Creator. Моя конечная цель - превратить его в проект CMake, чтобы выбросить ограниченную систему VPC Valve, хотя я точно не знаю, как это работает, поэтому я делаю простые шаги.Переопределение strdup Функция У меня уже есть тело
Я использую для компиляции под компилятором MSVC++ 2013, так что это то, что я использую, и я столкнулся с этой последней проблемой, я не знаю, как с этим бороться. То, что я собираюсь сделать первым, если оно не компилируется прямо под его предполагаемым компилятором, я, очевидно, делаю это неправильно, и мне не нужно будет изменять код.
Valve имеет этот memoverride.cpp, который имеет char * __ cdecl _strdup (const char * string), который, если я его прокомментирую, код компилируется просто отлично, так что это последний вопрос, с которым я имею дело.
С помощью этой функции «переопределить» Я получаю следующие две ошибки:
C2084: функция «символ MemAlloc_StrDup (Const символ) уже имеет тело
C2732: спецификация связь противоречит ранее спецификации for 'MemAlloc_StrDup'
Кто-нибудь знает какой-либо необходимый параметр компилятора, какую-то библиотеку по умолчанию, которую следует исключить, или определить препроцессор, который я должен использовать, чтобы обойти это? Я попытался скомпилировать код в Visual Studio и отключил подавленный баннер запуска, чтобы я мог видеть все параметры, которые он передавал, но я пробовал их все, но это, похоже, не имело никакого значения.
Значит, у кого-нибудь есть идея?
Любая информация была бы принята с благодарностью, спасибо!
TL, DR. * "memoverride.cpp" * Является ли это C или C++? –
Это C++. Однако, если вы собираетесь предложить изменить код с помощью extern «C» или что-то еще, это не тот ответ, который я ищу. И давай, это не так долго. –
Да, это просто вафли. * «Я привык к компиляции под компилятором MSVC++ 2013, так вот что я использую» * –