Да, еще один вопрос LNK 2019, но я не смог найти решение своей конкретной проблемы.
Надеюсь, вы можете помочь с этим, так как это совершенно сбивает меня с толку. Это мой первый опыт работы с несколькими проектами и модульным тестированием на C ++.
Справочная информация:
- Консольное приложение Win32
- Проект A - основное приложение (main.cpp, do_app.cpp, do_app.hpp)
- Проект B - Повышение модульного теста проекта A (do_test.cpp)
- Проект B зависит от проекта A в зависимостях проекта.
- Проект A компилируется первым в последовательности сборки.
- Проект B включает файлы в проекте A в разделе «Дополнительные зависимости включения».
- do_test.cpp включает do_app.hpp.
Когда я строю проект, я получаю следующую ошибку:
do_test.obj : error LNK2019: unresolved external symbol "int __cdecl dummy(void)" (?dummy@@YAHXZ) referenced in function "public: void __thiscall AddTask_noTasksExistAtAll_dataFileCreated::test_method(void)" (?test_method@AddTask_noTasksExistAtAll_dataFileCreated@@QAEXXZ)
2>D:\Documents\Trader Rick\Projects\do\Debug\do_test.exe : fatal error LNK1120: 1 unresolved externals
int dummy()
- функция, созданная в do_app.hpp и созданная в do_app.cpp. Он вызывается do_test.cpp.
Если я заменю
#include "do_app.hpp"
с
#include "do_app.cpp"
тогда проблема исчезает и исполняемый файл работает как положено.
Теперь ясно, что компоновщик в сборке do_test.exe не может видеть файл do_app.obj. Мой вопрос почему нет? Я думаю, что я правильно установил свойства проекта для проекта B.
Есть идеи, ребята?
заранее спасибо