eoranged 22.10.2012 22:22 Pidgin

Я тупой и совсем забыл как писать на си под линуск.
Дано приложение, которое подгружает некую разделяемую библиотеку.
Задача: сделать так, чтобы из этой библиотеки можно было использовать luajit и luasocket.
Основная проблема заключается в том, что я тупой и не помню как слинковать мою библиотеку с luasocket статически и как заставить gcc не удалять всякие ненужные с его точки зрения экспорты без -O0.

З.Ы. У меня уже работает, но очень костыльно, а хочется красиво.

linux, c
1. lexszero 22.10.2012 22:24 nyapad

э што. гцц разве удаляет экспорты? они же на то и экспорты, лол.

2. eorangedlexszero /1 22.10.2012 22:25 Pidgin

Я совсем тупой к вечеру и неправильно объясняю.
В общем, я импортирую библиотеку, но нигде её явно не использую. GCC считает, что оно не нужно и не линкует с ней :)

3. lexszeroeoranged /2 22.10.2012 22:26 nyapad

я опять нихуя не понял. что такое "импортирую"?

4. eorangedlexszero /3 22.10.2012 22:28 Pidgin

делаю include <xxx.h> и сохраняю ссылки на некоторые из функций во внутреннюю структуру.

5. eorangedeoranged /4 22.10.2012 22:29 Pidgin

В общем, это не основная проблема: я готов собирать без оптимизаций: там только обвязка из нескольких строк кода.
Главная проблема, что я уже сто лет не писал на сях и не помню как слинковать библиотеку статически с другой библиотекой.

6. lexszeroeoranged /5 22.10.2012 22:31 nyapad

gcc a.o b.o -static -o c.o ?

7. eorangedlexszero /6 22.10.2012 22:32 Pidgin

Ты сейчас страшные вещи пишешь.

Do you really want to delete ?