Внешние заголовки включают в C ++ - PullRequest
1 голос
/ 27 августа 2011

У меня есть два проекта, и у них есть несколько общих заголовков, поэтому они оба включают эти заголовки.Теперь мой вопрос: могу ли я реализовать эти заголовки во внешних файлах cpp.Например, когда заголовок находится внутри проекта, вы просто объявляете функции и внедряете их в файл .cpp, а поскольку файл .cpp находится в проекте, компилятор будет знать, где получить реализацию этих функций.как мне сделать то же самое для внешних заголовков ??включать как .h и .cpp ??реализовать все функции внутри .h ??

Спасибо.

Ответы [ 2 ]

3 голосов
/ 27 августа 2011

Как правило, вы создаете динамическую или статическую библиотеку для определений, найденных в файлах cpp - это экспортированные определения объявлений в разделяемых вами заголовках.

, затем вы связываете свое приложение / исполняемый файлв эту библиотеку.

во время компоновки компоновщик найдет символы, на которые ссылается приложение, в созданной вами статической / динамической библиотеке.если вы все правильно настроили и настроили, ошибок компоновщика не будет.

0 голосов
/ 27 августа 2011

Это зависит от того, чего вы пытаетесь достичь.Я действительным решением является создание файла «только заголовок», где реализация находится в объявлении.Большая часть библиотеки boost делает это.

Другой вариант - поместить ваш общий код в другой проект и создать ссылку на него.

...