Вчера пытался собрать libGLU от SGI (в пакете с Mesa-6.0.1). Кто не знает, зачем оно, не важно, т.к. проблема в другом: библиотека написана на C++, а программы, к-рые ее используют - C-шные.
При линковке библиотеки она динамически линкуется к libGL, получаем, скажем, libGLU.so . Далее, собираем C-шную прогу с динамической линковкой к libGLU.so, и линковщик выдает сообщение об unresolved стандартных С++-операторах в libGLU.so (new, delete, etc.).
Вопрос: как собрать libGLU.so с дин. линковкой в libGL.so, но чтобы g++ статически прилинковал ее к тому, что было unresolved?Тех. подробности (имеет значение?): g++ 3.3.? , из станд. поставки FreeBSD 5.2.1
> Вчера пытался собрать libGLU от SGI (в пакете с Mesa-6.0.1).
>Кто не знает, зачем оно, не важно, т.к. проблема в другом:
>библиотека написана на C++, а программы, к-рые ее используют - C-шные.
>
> При линковке библиотеки она динамически линкуется к libGL, получаем, скажем,
>libGLU.so . Далее, собираем C-шную прогу с динамической линковкой к libGLU.so,
>и линковщик выдает сообщение об unresolved стандартных С++-операторах в libGLU.so (new,
>delete, etc.).
> Вопрос: как собрать libGLU.so с дин. линковкой в libGL.so, но
>чтобы g++ статически прилинковал ее к тому, что было unresolved?
>
> Тех. подробности (имеет значение?): g++ 3.3.? , из станд. поставки
>FreeBSD 5.2.1
Привет, дружище.
Я не проверял, не знаю, но предполагаю, что необходимо при линковке стандартно прилинковать к программе libstd++... это си++ стандартная библиотека. Быть может поможет. Удачи
Поможет, но теперь другая проблема - слинковать к libGLU libstd++ статически, в то время как libGL - динамически. Как осуществить такую "смешанную" линковку?
> Поможет, но теперь другая проблема - слинковать к libGLU libstd++
>статически, в то время как libGL - динамически. Как осуществить такую
>"смешанную" линковку?Привет опять, хорошо, что моя теория оказалось правильной, это +.
ЗначиЦЦа так, динамику со статикой ты уже не слинкуешь, выход такой, эту статику подсунуть к программе при линковке, которая будет юзать динамику.static_lib.a + program.elf linking with shared_lib.so
Удачи!
> Поможет, но теперь другая проблема - слинковать к libGLU libstd++
>статически, в то время как libGL - динамически. Как осуществить такую
>"смешанную" линковку?в другие темы смотришь ? ;)
http://www.opennet.me/openforum/vsluhforumID9/3270.html#10