Я написал программу в C++, используя файлы заголовков из boost. Когда я скомпилировал его, я заметил, что у меня есть некоторые неопределенные символы для повышения системы и повышения файловой системы (что я ожидал). Я, наконец, получил свою компиляцию и ссылку на программу, но я, вероятно, не понимаю, почему. Если бы кто-то мог дать некоторое представление о следующем, я бы оценил это.Boost C++ статические пути ссылок под cygwin
Окончательное утверждение компиляции является: G ++ dcc_to_png.c -lboost_system-MT -lboost_filesystem-м , но глядя на повышающего/состояние/Библиотека имен библиотеки, перечисленные в/cygdrive/C/Users/Joe/My \ Documents/My \ Dropbox/Code/boost_1_46_1/stage/lib - libboost_system.a и libboost_filesystem.a.
То, что я не понимаю,
а) Что эти строки я использую boost_system-мт и т.д.? Где они определены, на что они ссылаются? Как они разрешают фактические библиотеки?
b) По какой-то причине, если я попытаюсь сделать это самостоятельно, ld жалуется, что он не может найти lib. Например:
г ++ dcc_to_png.c -L "/ cygdrive/с/Пользователи/Joe/Мои документы/My Dropbox/Код/boost_1_46_1/этап/Библиотека" -llibboost_system.a -llibboost_filesystem.a
выходы:
/usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/bin/ld: не может найти -llibboost_system.a /usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/bin/ld: не удается найти -llibboost_filesystem .a collect2: ld возвращено 1 exit s tatus
c) В инструкции, которая компилирует + ссылки, почему я должен использовать -mt в конце boost_system? Я понимаю, что означает -mt, но как это разрешает lib в моей файловой системе?
Но почему? можете ли вы объяснить или предоставить ссылку о том, как ld находит эти вещи? – j03m