Я создал проект C ++ в Visual Studio 2019. Я добавил к нему два файла: MyClass.hpp
и MyClass.cpp
. Затем я создал тестовый проект и добавил исходный проект в качестве ссылки.
Если дважды щелкнуть ссылку в тестовом проекте, я вижу MyClass
. Но если я пытаюсь запустить тесты, я получаю эту ошибку:
MyTest.obj : error LNK2019: unresolved external symbol "public: struct MyRef __thiscall MyClass::SetData(struct Data)" (?SetData@MyClass@@QAE?AUMyRef@@UData@@@Z) referenced in function "private: virtual void __thiscall MyTest_SetData_Test::TestBody(void)" (?TestBody@MyTest_SetData_Test@@EAEXXZ)
Что я не так делаю? Почему MyClass.cpp
не компилируется, даже если он находится в ссылочном проекте? Я могу построить оригинальный проект без ошибок. Я получаю сообщение об ошибке только при попытке построить тестовый проект.
Я столкнулся с этим вопросом о неразрешенной внешней ошибке символа , но она не решила мою проблему. Это проблема Visual Studio Speci c.
Если я добавлю MyClass.cpp
в тестовый проект вручную, то это сработает. Но я не хочу делать это для каждого файла, потому что мой проект может иметь гораздо больше cpp исходных файлов, а не только этот. Я бы хотел, чтобы он работал, используя функцию «ссылки».
При создании тестового проекта я выбрал исходный проект в качестве ссылки.