У меня есть проект, который включал в себя несколько файлов, которые включены в другиеC++, включая .cpp: избежать ошибок нескольких определений
A.h --> B.h means A.h is included in B.h
Есть много включений, как
A.h --> X.h
B.h --> A.h
B.h --> X.h
Что все работает отлично. Теперь у меня есть проблема, что мне нужно включить файл cpp (а не мой файл, не могу ничего с ним поменять). EDIT: Там нет соответствующего .h файл для этого .cpp Как только я сделать что-то вроде
Z.cpp --> B.h
Я получаю ошибку компиляции для нескольких объявлений. Я также попытался
Z.cpp --> B.cpp
Аналогичного результата, только меньше ошибок (B.h включена во многих других заголовочных файлах)
Как я могу включить этот .cpp?
EDIT: Я понимаю, откуда исходит ошибка, мне просто интересно, есть ли способ обхода проблемы.
Не указывайте исходные файлы '# include'. Скомпилируйте их отдельно в объектные файлы, которые вы затем связываете. –
Вы хотите сделать библиотеку из этого cpp? – chrise
Нет, просто отдельная компиляция исходного файла в один файл объекта. –