Проблема такая:
Если я выставляю в проекте Runtime Library как "Multi-threaded DLL", то MSVC не видит main()!!
(а она скрыта где-то в дефайнах Boost.Test)
Если я добавляю main(), то она выполняется вместо буст-тестовой.
Если же я ставлю просто Multi-threaded, то все ок, Boost.Test работает, никаких main() в проекте не требуется, работает тест-бустовский main(). Но размер экзешника, понятное дело, заметно увеличивается.
Вопрос:
Как заставить работать Boost.Test с RuntimeLibrary="Multi-threaded DLL"?
И куда исчезает его main()?
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Здравствуйте, Basil2, Вы писали:
B>Проблема такая: B>Если я выставляю в проекте Runtime Library как "Multi-threaded DLL", то MSVC не видит main()!!
Do you link with static library?
B>(а она скрыта где-то в дефайнах Boost.Test) B>Если я добавляю main(), то она выполняется вместо буст-тестовой.
B>Если же я ставлю просто Multi-threaded, то все ок, Boost.Test работает, никаких main() в проекте не требуется, работает тест-бустовский main(). Но размер экзешника, понятное дело, заметно увеличивается.
B>Вопрос: B>Как заставить работать Boost.Test с RuntimeLibrary="Multi-threaded DLL"? B>И куда исчезает его main()?
You probably need to select proper runtime both during Boost.Test compilation and your test compilation.
Здравствуйте, rogeeff, Вы писали:
B>>Если я выставляю в проекте Runtime Library как "Multi-threaded DLL", то MSVC не видит main()!! R>Do you link with static library?
Да.
B>>Вопрос: B>>Как заставить работать Boost.Test с RuntimeLibrary="Multi-threaded DLL"? B>>И куда исчезает его main()?
R>You probably need to select proper runtime both during Boost.Test compilation and your test compilation.
А разве Boost с определенным runtime не выбирается автоматом??
Я впрочем проблему решил, но решил так:
вместо хидера
#include <boost/test/unit_test.hpp>
подключил
#include <boost/test/included/unit_test.hpp>
Не разбирался почему, но помогло...
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Здравствуйте, Basil2, Вы писали:
B>Здравствуйте, rogeeff, Вы писали:
B>>>Если я выставляю в проекте Runtime Library как "Multi-threaded DLL", то MSVC не видит main()!! R>>Do you link with static library? B>Да.
B>>>Вопрос: B>>>Как заставить работать Boost.Test с RuntimeLibrary="Multi-threaded DLL"? B>>>И куда исчезает его main()?
R>>You probably need to select proper runtime both during Boost.Test compilation and your test compilation. B>А разве Boost с определенным runtime не выбирается автоматом??
B>Я впрочем проблему решил, но решил так: B>вместо хидера B>#include <boost/test/unit_test.hpp> B>подключил B>#include <boost/test/included/unit_test.hpp>
B>Не разбирался почему, но помогло...
Well you just switched from linking to the library to the single-header variant of UTF. In later case whole framework in included into your test module. Note though that this way you can only create test module with a single test file.
Also I'd recommend to make sure that you actually NOT to link with any of UTF binaries, cause otherwise you may find some strange side-effects.