2015-12-17 3 views
0

У меня возникли серьезные проблемы с Visual Studio 2013. У меня есть консольный проект на C++ с двумя файлами: Main.cpp и A.cpp, я импортирую A.cpp с #include "A.cpp" в main.cpp.C++ visual studio не строит должным образом

В этом заключается проблема: когда я редактирую A.cpp и запускаю Main.cpp, изменений не происходит. Я также должен изменить Main.cpp, и только тогда Visual Studio заметит изменения и перекомпилирует все правильно.

Это очень раздражает, когда я пытаюсь что-то изменить в A.cpp, любая идея, как это исправить?

EDIT:

Я попытался переименовать A.cpp в A.hpp и включают в себя A.hpp из Main.cpp с таким же результатом: изменения в A.hpp не происходит в сборке, пока не изменится Main.cpp, а также. Я попытался поставить A.hpp как в заголовочные файлы, так и в исходные файлы в обозревателе решений, все же те же результаты.

+3

Добавить 'A.cpp' в проекте VS. Кстати, если вы не знаете, что делаете, вы никогда не должны включать файлы '.cpp' друг в друга. C++ - это не Java. – Drop

+0

И как добавить 'A.cpp' в проект VS? Я вижу «Main.cpp» и «A.cpp» в папке «Исходные файлы» в Исследователе решений. – kajacx

+0

@kajacx, у вас есть 'A.h'. Если нет, то создайте его и добавьте. Вы можете показать минимальный рабочий пример, чтобы люди могли судить о том, что вы делаете неправильно. – CroCo

ответ

2

Никогда не принимайте #include "A.cpp"! Только h -файлы (или hpp) должны быть включены с #include. Если вы хотите использовать в Main.cpp некоторые функции, определенные в A.cpp Мне нужно создать A.h (и не изменять A.cpp) с декларациями этих функций. Конечно, вам нужно добавить оба проекта: Main.cpp и A.cpp.

ПРИМЕЧАНИЕ: Если вы добавляете A.cpp в проект VS и оставить #include "A.cpp" (не #include "A.h"), это приведет к проблеме с переопределением функций от A.cpp.

См простое объяснение в C++ forum и other examples

+0

Он должен добавить его как «заголовочный файл C++» (может быть изменен в свойствах файла). – Drop

+0

Ваш совет звучит вообще. Однако есть некоторые случаи, когда вы хотите включить файлы «cpp». Я помню, что он используется в технике, которая позволяет вам внедрять шаблоны в файле «cpp»: http://www.codeproject.com/Articles/48575/How-to-define-a-template-class-in-ah -file-and-imp –

+0

@MarkoPopovic Да, мой ответ довольно общий, но это общий вопрос. В любом случае, спасибо за ссылку, возможно, это будет полезно для kajacx – VolAnd

Смежные вопросы