У меня есть решение с 2 проектами, один из которых - stati c library, а другой - приложение, которое
ссылается на него. В библиотеке stati c у меня есть предварительно скомпилированный заголовочный файл со следующим кодом:
#pragma once
//C standard Library
#include <stdio.h>
//C++ Standard Library
#include <iostream>
#include <fstream>
#include <sstream>
#include <memory>
#include <functional>
//Data Structures
#include <string>
#include <vector>
#include <array>
#include <map>
#include <set>
#include <unordered_map>
#include <unordered_set>
Я также добавил необходимый файл. cpp и настроил свойства проекта для использования этой спецификации c скомпилированный заголовок pre-
. Я также добавил .h файл в начало каждого. cpp файла по мере необходимости. Я перешел к моему
последнему проекту и правильно сослался на библиотеку stati c и написал некоторый простой код, вот пример
:
class Test : public Craft::Application
{
public:
Test()
{
}
~Test()
{
}
};
Craft::Application* Craft::CreateApplication()
{
return new Test;
}
Это вернуло тест объект будет связан с точкой входа и пройдет через конвейер, и
встретит код из библиотеки std, вот когда я получаю следующие ошибки:
- ошибка C2039: 'строка': не является членом сообщения 'std'
- : см. объявление 'std'
- ошибка C3646: 'Заголовок': неизвестный спецификатор переопределения
- ошибка C4430: отсутствует спецификатор типа - предполагается. Примечание: C ++ не поддерживает default-int
- ошибка C2039: «строка»: не является членом сообщения «std»
- : см. Объявление «std»
- ошибка C4430: отсутствует указатель типа - предполагается int. Примечание: C ++ не поддерживает default-int
- ошибка C2143: синтаксическая ошибка: отсутствует ',' before '&'
- ошибка C2065: 'title': необъявленный идентификатор
- ошибка C2065: «ширина»: необъявленный идентификатор
- ошибка C2065: «высота»: необъявленный идентификатор
- ошибка C2614: «Craft :: Window :: WindowProps»: недопустимая инициализация элемента: «Заголовок» не является базой или элементом
- ошибка C2039: «unique_ptr»: не является членом сообщения «std»
- : см. объявление «std»
- ошибка C2143: синтаксическая ошибка: отсутствует ';' до '<' </li>
- ошибка C4430: отсутствует указатель типа - предполагается int. Примечание: C ++ не поддерживает default-int
- ошибка C2238: неожиданные маркеры перед ';'
Я понимаю, что этот проект не распознает файлы заголовков в моем предварительно скомпилированный заголовок. Я могу
подтвердить, что, поскольку я включил эти файлы в приложение, это решило все ошибки. Это вызывает много вопросов
: Этот проект связан с библиотекой, так почему же он не распознает этот предварительно скомпилированный заголовок
? Каково лучшее решение для этого? Это предварительно скомпилированный заголовок для проекта? Это что-то
совсем другое?