Я раньше не использовал Boost и хочу изменить это сейчас. Но мне нужна только одна из его библиотек, которая является Boost.Filesystem. Я успешно построил библиотеки и связал одну из папки boost/libs/filesystem
с моим проектом Visual Studio.Как использовать Boost.Filesystem автономно?
Затем я скопировал boost/filesystem.cpp
и папку boost/filesystem
с ее содержимым в каталог include моего проекта. Но этого было недостаточно, поскольку компилятор жаловался на многие файлы, связанные с ускорением, которые отсутствовали.
Вот несколько примеров, но их гораздо больше.
boost/utility/enable_if.hpp
boost/type_traits/is_integral.hpp
boost/type_traits/is_array.hpp
boost/type_traits/decay.hpp
boost/system/system_error.hpp
...
Как использовать Boost.Filesystem как отдельную библиотеку? Я не хочу использовать всю коллекцию, так как я хочу хранить библиотеки в каталоге проекта, и поэтому она излишне увеличивала бы размер моего проекта.
Если вы используете VS2012 включает (как еще нестандартность) '' заголовка; он основан на Boost.FileSystem V3. В противном случае AFAIK не будет доступна отдельная версия. Кроме того, IMO, ваша установка Boost должна управляться отдельно от любого из ваших проектов, потому что вы, вероятно, захотите использовать Boost с более чем одним из ваших личных проектов. –
Praetorian
Я знаю, что рекомендуется устанавливать Boost отдельно, но у меня все хорошо, включая все библиотеки в мой проект. Это облегчает проверку проекта на другом компьютере и продолжает работу. Я раньше не слышал о '', но это звучит здорово. Предоставляет ли он способ получить последнюю измененную дату файла? –
danijar
Реализация основана на [предложении] (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3505.html) для C++ 14, и она сильно зависит от Boost.Filesystem. Но поскольку он не стандартизирован, ваш код может порвать с будущими версиями. Что касается конкретных особенностей, я никогда не использовал его сам, поэтому я не знаю ответа на этот вопрос. Но если версия Boost поддерживает ее, скорее всего, это и делает другой. – Praetorian