The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Не получается с mysql++ собрать задачу с -static"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Не получается с mysql++ собрать задачу с -static"
Сообщение от Lamr emailИскать по авторуВ закладки on 11-Авг-04, 14:27  (MSK)
никто не боролся? Если у ISP libmysql++ не установлен, ЦГИ не работает :-((
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Не получается с mysql++ собрать задачу с -static"
Сообщение от mirya emailИскать по авторуВ закладки on 11-Авг-04, 15:55  (MSK)
1) У тебя mysql собран без статических библиотек (*.a), они и компонуются в -static, пересобери
2) Альт. собрать с -shared и в довесок к CGI-проге поставлять mysql.so
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Не получается с mysql++ собрать задачу с -static"
Сообщение от Lamr emailИскать по авторуВ закладки on 11-Авг-04, 17:29  (MSK)
>1) У тебя mysql собран без статических библиотек (*.a), они и компонуются
>в -static, пересобери

Есть файл libmysqlclient.a, только она в нём не все фукции находит

>2) Альт. собрать с -shared и в довесок к CGI-проге поставлять mysql.so
>

Спасибо, это то, что надо.
Остальное прочитаю в man gcc Ж-))))

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Не получается с mysql++ собрать задачу с -static"
Сообщение от mirya emailИскать по авторуВ закладки on 11-Авг-04, 17:33  (MSK)
>Есть файл libmysqlclient.a, только она в нём не все фукции находит

Уже интересно... а что (какие ф-ции) не находит?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Не получается с mysql++ собрать задачу с -static"
Сообщение от Lamr emailИскать по авторуВ закладки on 11-Авг-04, 20:08  (MSK)
>>Есть файл libmysqlclient.a, только она в нём не все фукции находит
>
>Уже интересно... а что (какие ф-ции) не находит?

/usr/local/lib/mysql/libmysqlclient.a(my_compress.o): In function `my_compress':
my_compress.o(.text+0x7d): undefined reference to `compress'
/usr/local/lib/mysql/libmysqlclient.a(my_compress.o): In function `my_compress_alloc':
my_compress.o(.text+0x158): undefined reference to `compress'
/usr/local/lib/mysql/libmysqlclient.a(my_compress.o): In function `my_uncompress':
my_compress.o(.text+0x1f1): undefined reference to `uncompress'


  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Не получается с mysql++ собрать задачу с -static"
Сообщение от Lamr emailИскать по авторуВ закладки on 11-Авг-04, 20:19  (MSK)

>>Уже интересно... а что (какие ф-ции) не находит?

собираю так:

c++ -o logout.cgi logout.c -O6  -I/usr/local/include/mysql -L/usr/local/lib/mysql -L/usr/local/lib -lmysqlclient -lsqlplus

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Не получается с mysql++ собрать задачу с -static"
Сообщение от mirya emailИскать по авторуВ закладки on 11-Авг-04, 20:32  (MSK)
>
>>>Уже интересно... а что (какие ф-ции) не находит?
>
>собираю так:
>
>c++ -o logout.cgi logout.c -O6  -I/usr/local/include/mysql -L/usr/local/lib/mysql -L/usr/local/lib -lmysqlclient -lsqlplus

Смахивает на libz - Добавь в конец "-lz" (под рукой нету юнихмашины)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Не получается с mysql++ собрать задачу с -static"
Сообщение от Lamr emailИскать по авторуВ закладки on 11-Авг-04, 20:44  (MSK)

>Смахивает на libz - Добавь в конец "-lz"

mirya! Ты компьютерный гений! Жму руку. Две руки.
Всё получилось.
спасибо*1024.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. ">Смахивает на libz - Добавь в конец '-lz'"
Сообщение от Lamr emailИскать по авторуВ закладки on 11-Авг-04, 20:53  (MSK)

8-()

Мля!
Теперь он весит мегабайт!
А без -static 50 килобайт весил.
Вот бл@ть!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. ">Смахивает на libz - Добавь в конец '-lz'"
Сообщение от mirya emailИскать по авторуВ закладки on 11-Авг-04, 20:57  (MSK)
конечно, просуммируй размеры либ - получишь где-то столько же. Я как раз сегодня спрашивал, как слинковать часть либ динамически, а другую - статически. Молчат, партизаны :)
  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. ">Смахивает на libz - Добавь в конец '-lz'"
Сообщение от qq Искать по авторуВ закладки on 12-Авг-04, 01:15  (MSK)
>конечно, просуммируй размеры либ - получишь где-то столько же. Я как раз
>сегодня спрашивал, как слинковать часть либ динамически, а другую - статически.
>Молчат, партизаны :)

$ ls
makefile  test.c
$ cat makefile
test: test.c
        gcc -c test.c
        gcc -o test -lpthread *.o
$ make
gcc -c test.c
gcc -o test -lpthread *.o
test.o: In function `test_func1':
test.o(.text+0x11): undefined reference to `BZ2_bzCompress'
test.o(.text+0x13a): undefined reference to `BZ2_bzCompressEnd'
test.o(.text+0x15d): undefined reference to `BZ2_bzCompressInit'
test.o: In function `test_func2':
test.o(.text+0x617): undefined reference to `BZ2_bzDecompressInit'
test.o(.text+0xade): undefined reference to `BZ2_bzDecompress'
test.o(.text+0x110a): undefined reference to `BZ2_bzDecompressEnd'
collect2: ld returned 1 exit status
make: *** [test] Ошибка 1

$ ar x /usr/lib/libbz2.a
$ ls
blocksort.o  bzlib.o  compress.o  crctable.o  decompress.o  huffman.o  makefile  randtable.o  test.c  test.o
$ make
gcc -c test.c
gcc -o test -lpthread *.o
$ ls -l test
-rwxr-xr-x    1 qq      qq         80375 Авг 12 03:19 test
$ ldd test
        libpthread.so.0 => /lib/libpthread.so.0 (0x40022000)
        libc.so.6 => /lib/libc.so.6 (0x40073000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. ">Смахивает на libz - Добавь в конец '-lz'"
Сообщение от Lamr emailИскать по авторуВ закладки on 12-Авг-04, 12:12  (MSK)
>$ ls
>makefile  test.c
>$ cat makefile
>test: test.c
>        gcc -c test.c
>        gcc -o test -lpthread
>*.o
>$ make
>gcc -c test.c
>gcc -o test -lpthread *.o
>test.o: In function `test_func1':
>test.o(.text+0x11): undefined reference to `BZ2_bzCompress'
>test.o(.text+0x13a): undefined reference to `BZ2_bzCompressEnd'
>test.o(.text+0x15d): undefined reference to `BZ2_bzCompressInit'
>test.o: In function `test_func2':
>test.o(.text+0x617): undefined reference to `BZ2_bzDecompressInit'
>test.o(.text+0xade): undefined reference to `BZ2_bzDecompress'
>test.o(.text+0x110a): undefined reference to `BZ2_bzDecompressEnd'
>collect2: ld returned 1 exit status
>make: *** [test] Ошибка 1
>
>$ ar x /usr/lib/libbz2.a
>$ ls
>blocksort.o  bzlib.o  compress.o  crctable.o  decompress.o  huffman.o  
>makefile  randtable.o  test.c  test.o
>$ make
>gcc -c test.c
>gcc -o test -lpthread *.o
>$ ls -l test
>-rwxr-xr-x    1 qq      qq
>        80375 Авг 12
>03:19 test
>$ ldd test
>        libpthread.so.0 => /lib/libpthread.so.0 (0x40022000)
>        libc.so.6 => /lib/libc.so.6 (0x40073000)
>        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

  Т.е. если распаковать архив объектных файлов и показать на эту кучу линкеру, он соберёт только с теми, которые реально используются.
  Как я сам не допёр?
  Спасибо
  Очень лаконичный и понятный ответ ;-)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. ">Смахивает на libz - Добавь в конец '-lz'"
Сообщение от qq Искать по авторуВ закладки(ok) on 12-Авг-04, 13:57  (MSK)
да нет, соберет он со всеми объектниками.
а вообще, оказывается всё проще

$ ls
makefile  test.c
$ make
gcc -c test.c
gcc -o test -lpthread test.o /usr/lib/libbz2.a

причем в этом случае, он левые объектники из либ не подцепляет.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру