| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > линковка шаровой лайбы |
| Автор: GrayCardinal 23.5.2008, 15:11 |
| Суть трабла. Собираю шаровую лайбу из кучи мелких статических лайб ("*.a"). В результате получаю _пустую_ шаровую лайбу. Как можно это исправить ? Пробовал $ g++ *.a -shared -o libgclib2.so и $ g++ -l<lib1> -l<lib2> etc. |
| Автор: MAKCim 23.5.2008, 16:35 | ||
банально, но действенно
ps. сам не понимаю, почему .a не распознается GCC |
| Автор: GrayCardinal 24.5.2008, 11:19 |
| MAKCim, Так и сделал. |
| Автор: xvr 26.5.2008, 12:28 | ||
Из статических либ (*.a) в выходной модуль (как исполняемый, так и so) включаются ТОЛЬКО модули, содержащие public определения неразрешенных к данному моменту внешних символов. Неразрешенные внешние символы могут появится только в результате линковки *.o или включенных из *.a модулей. Так как никаких *.o не подавалось, то неразрешенных символов не было, и никакие модули из *.a включены не были, и ничего в выходной .so не попало. |
| Автор: GrayCardinal 26.5.2008, 13:55 |
| xvr, И чего делать ? Создавать файло в котором используются ВСЕ функции и включать в лайбу ? LOL |
| Автор: xvr 26.5.2008, 14:13 | ||
Это конечно поможет, но несколько через край |