25 / 25 / 11
Регистрация: 07.12.2012
Сообщений: 169
|
||||||||||||||||
1 | ||||||||||||||||
LNK2019 два проекта в одном решении (MSVC gtest)09.09.2015, 17:43. Показов 3484. Ответов 8
Метки нет (Все метки)
Собственно собрал gtest 1.7.0 static debug с ключом /MTd.
Создал решение. Добавил в него проект, в котором есть функтор
В нём указал дополнительные включение (gtest/include и путь к первому проекту), библиотеки (путь к собраным статическим библиотекам) и зависимости (gtestd.lib и gtest_maind.lib). Также добавил ссылку к первому проекту. Все проекты в решении собираются с ключом /MTd Создал исходник
Ошибка P.S: если объявлять определение оператора() в заголовочном файле, то проблем нет.
0
|
09.09.2015, 17:43 | |
Ответы с готовыми решениями:
8
Получить доступ к проекту из другого проекта в одном решении В решении два проекта Два проекта в решении Как подключить к проекту класс из другого проекта, если эти проекты находятся в одном решении |
Заблокирован
|
|
09.09.2015, 17:55 | 2 |
0
|
8971 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
09.09.2015, 18:42 | 4 |
не очевидно, что такое "ссылка к первому проекту".
обычно делают так: 1 проект - это библиотека (.lib), функционал которой нужно тестировать. 2 проект - это запускаемое приложение, которое содержит тесты ( .exe ) второй проект линкуется с gtest: gtestd.lib и gtest_maind.lib а так же с библиотекой, которую нужно протестировать: factorial.lib в вашем случае вы не указатели, что нужно слинковаться с factorial.lib тестируемая библиотека factorial.lib не была слинкованна и поэтому, тестовое проект видит хэдэры, но не видет туловища тестируемой библиотеки в вижал студии вы можете указать, что проект тестов зависит от проекта тестируемой библиотеки. тогда при изменении этой библиотеки, будет автоматически перекомпилированно все что нужно.
0
|
25 / 25 / 11
Регистрация: 07.12.2012
Сообщений: 169
|
|
09.09.2015, 19:51 [ТС] | 6 |
Собрал gtest-1.7.0\msvc\gtest.sln c ключом /MTd (следующие проекты создаются с таким же ключом)
Получил на выходе папку gtest\Debug с содержимым. Создал решение (solution), в котором создал обычное консольное приложение с функтором и main. Добавил к решению проект FirtUnitTest. добавил исходник и настроил проект с такими настройками:
0
|
25 / 25 / 11
Регистрация: 07.12.2012
Сообщений: 169
|
|
09.09.2015, 20:04 [ТС] | 7 |
Сам проект
0
|
8971 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||||||||
09.09.2015, 21:41 | 8 | |||||||||||||||
Сообщение было отмечено DrOffset как решение
Решение
xEmpire,
выбросьте этот хлам в мусорку на время. далее, по шагам простой пример: 1. создайте проект "статическая библиотека". назовите её "example". путь у неё будет всего два файла, которые реализуют одну единственную функцию: example.h
скомпилируйте библиотеку. у вас на выхлопе должна получится библиотека example.lib 3. убедившись, что библиотека успешно собирается, создавайте ещё один проект "запускаемое приложение". назовите его "unit-test" 4. в настройках проекта укажите пути к хэдэрам gtest 5. в настройках проекта укажите пути к библиотекам gtest и имена этих библиотек. 6. в настройках проекта укажите пути к хэдэрам example 7. в настройках проекта укажите пути к библиотеке example и имя example.lib. 8. добавьте в проект файл unit-test.cpp с таким содержанием:
в солюшене проекта поставьте галочку, что проект unit-test зависит от проекта example теперь при изменении кода example, unit-test будет пересобираться 10. в солюшене проекта укажите, что unit-test должен быть старующим проектом. 11. нажмите ctrl-f5
1
|
25 / 25 / 11
Регистрация: 07.12.2012
Сообщений: 169
|
||||||
09.09.2015, 23:56 [ТС] | 9 | |||||
hoggy, спасибо.
Всё сводится к статической библиотеке. P.S: в 7 пункте можно просто ссылаться на проект, который тестируем (проверено). тогда в проекте с модульным тестированием не будет необходимости прописывать в настройках путь к библиотеке и добавлять вручную внешнюю зависимость. Тогда остается лишь укоротить путь к подключаемому заголовку с внешнего проекта
0
|
09.09.2015, 23:56 | |
09.09.2015, 23:56 | |
Помогаю со студенческими работами здесь
9
Как запустить сразу два проекта в решении (серверная часть и клиентская) Могут ли в решении два проекта компилироваться одновременно при сборке решения? Два проекта в одном(взаимодействие) Развернуть два Asp.Net Core проекта на одном домене Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |