Заголовок прекомпиляции в проекте CPP и C, сгенерированный из файла wsdl
Я создаю простой клиент веб-службы в CPP. Я сгенерировал исходные файлы из WSDL с помощью svcutil
анс wsutil
утилиты. В конце я получил интерфейс веб-службы header
а также C
файл.
Когда я включаю файл C в консольное приложение, которое использует предварительно скомпилированный заголовок, у меня появляется сообщение:
Error 3 error C1853: 'Debug\TestLib3.pch' precompiled header file is from a previous version of the compiler, or the precompiled header is C++ and you are using it from C (or vice versa)
Как решить эту проблему?
1 ответ
Компилятор C не может использовать файл.pch, созданный компилятором C++. Два основных варианта:
Переименуйте файл.c в.cpp, вероятно, он будет работать нормально с автоматически сгенерированным исходным файлом.
Щелкните правой кнопкой мыши файл.c в окне обозревателя решений, выберите Свойства, C / C++, Предварительно скомпилированные заголовки, параметр "Предварительно скомпилированный заголовок". Измените его на "Не используется". Вам также может понадобиться изменить исходные файлы C++, которые включают в себя #h файл.h, который может потребоваться
extern "C" {}
вокруг директивы #include, поэтому компилятор C++ знает, что файл.h содержит объявления C. Вы будете знать, что это необходимо, когда вы получите ошибки компоновщика, которые показывают искаженное имя функции.