Boost.Test, main() и "Multi-threaded DLL"
От: Basil2 Россия https://starostin.msk.ru
Дата: 22.10.09 15:59
Оценка:
Проблема такая:
Если я выставляю в проекте Runtime Library как "Multi-threaded DLL", то MSVC не видит main()!!
(а она скрыта где-то в дефайнах Boost.Test)
Если я добавляю main(), то она выполняется вместо буст-тестовой.

Если же я ставлю просто Multi-threaded, то все ок, Boost.Test работает, никаких main() в проекте не требуется, работает тест-бустовский main(). Но размер экзешника, понятное дело, заметно увеличивается.

Вопрос:
Как заставить работать Boost.Test с RuntimeLibrary="Multi-threaded DLL"?
И куда исчезает его main()?
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Re: Boost.Test, main() и "Multi-threaded DLL"
От: rogeeff  
Дата: 19.11.09 00:05
Оценка:
Здравствуйте, 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.

Gennadiy
Re[2]: Boost.Test, main() и "Multi-threaded DLL"
От: Basil2 Россия https://starostin.msk.ru
Дата: 19.11.09 12:11
Оценка:
Здравствуйте, 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 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Re[3]: Boost.Test, main() и "Multi-threaded DLL"
От: rogeeff  
Дата: 19.11.09 16:48
Оценка:
Здравствуйте, 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.

Gennadiy
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.