Показаны сообщения с ярлыком boost. Показать все сообщения
Показаны сообщения с ярлыком boost. Показать все сообщения

четверг, 28 марта 2013 г.

MSVS - пути к h и lib файлам библиотек

В 2010 студии общие для всех C/C++ проектов пути к библиотекам исчезли из Tools - Options..., на виду осталась только возможность задать пути к библиотекам отдельно для каждого C/C++ проекта в его свойствах.

Новое расположение этих настроек оказалось так хорошо замаскировано, что приходится долго вспоминать его каждый раз, когда надо поменять, это View -> Other Windows -> Property Manager -> Microsoft.Cpp.Win32.user:



Дерево настроек вроде как намекает, что это настройки для текущего проекта, причем отдельно для Debug/Release, но это не так, это для всех C/C++ проектов, независимо от конфигурации. Храниться эти настройки будут в файле %LOCALAPPDATA%\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props.

Вставить общие для всех C/C++ проектов пути к библиотекам можно либо в VC++ Directories - IncludeDirectories / LibraryDirectories, либо в C/C++ - General - Additional Include Directories / Linker - General - Additional Library Directories:



То, что в этих настройках будет вставлено в верхнем (настраиваемом) окошке:



в индивидуальных свойствах C/C++ проектов будет в таком же окне, но в нижнем, нередактируемом, сером окошке.

пятница, 27 мая 2011 г.

boost::filesystem

subj колбасит с каждой новой версией boost. Полез в старый код за примером рекурсивного обхода всех файлов в каталоге и подкаталогах, оказалось, что не компилируется, т.к. в очередной раз перетасовали внутренние имена в recursive_directory_iterator :(

Итого, для последнего на текущий момент boost 1.46.1:

if( is_directory(dirname) )
{
  recursive_directory_iterator end;
  for( recursive_directory_iterator it(dirname); it!=end; ++it )
  {
    cout << endl
      << it->path()         << ":"                                   << endl
      << "is_directory: "   << boolalpha << is_directory(it->path()) << endl
      << "root_path: "      << it->path().root_path()                << endl
      << "root_name: "      << it->path().root_name()                << endl
      << "root_directory: " << it->path().root_directory()           << endl
      << "relative_path: "  << it->path().relative_path()            << endl
      << "parent_path: "    << it->path().parent_path()              << endl
      << "filename: "       << it->path().filename()                 << endl
      << "stem: "           << it->path().stem()                     << endl
      << "extension: "      << it->path().extension()                << endl;
  }
}
и чтоб потом не вспоминать кто есть ху, вывод:

"C:\temp\2011.03\2011.03.26":
is_directory: true
root_path: "C:\"
root_name: "C:"
root_directory: "\"
relative_path: "temp\2011.03\2011.03.26"
parent_path: "C:\temp\2011.03"
filename: "2011.03.26"
stem: "2011.03"
extension: ".26"

"C:\temp\2011.03\2011.03.26\Трон Наследие 3D (BDRip 1920x1080).mkv":
is_directory: false
root_path: "C:\"
root_name: "C:"
root_directory: "\"
relative_path: "temp\2011.03\2011.03.26\Трон Наследие 3D (BDRip 1920x1080).mkv"
parent_path: "C:\temp\2011.03\2011.03.26"
filename: "Трон Наследие 3D (BDRip 1920x1080).mkv"
stem: "Трон Наследие 3D (BDRip 1920x1080)"
extension: ".mkv"