Заголовок прекомпиляции в проекте 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. Вы будете знать, что это необходимо, когда вы получите ошибки компоновщика, которые показывают искаженное имя функции.

Другие вопросы по тегам