LINUX.ORG.RU

не линкуется программа

 ,


0

1

Добрый день. на Debian 10.3 работает простенькая программа на g++, которая читает данные с контроллера и складывает в таблицу MariaDB. потребовалось сделать еще один сервер-сборщик, скачала с сайта Debian свежую версию debian-11.2.0-amd64-netinst.iso все установила как обычно. Но вот горе - программа не линкуется. makefile

tm: main.o
gcc-10 -lstdc++ -lmysqlclient -L /usr/lib/mysql -o tcrv main.o

main.o: main.cpp
gcc-10 -lstdc++ -c main.cpp
clean:
rm -f *.o

Ошибка:

root@hvo:~/prog/tcrv_ex# ./compile

gcc-10 -lstdc++ -lmysqlclient -L /usr/lib/mysql -o tcrv  main.o

/usr/bin/ld: main.o: in function `main':

main.cpp:(.text+0x42): undefined reference to `mysql_init'

collect2: error: ld returned 1 exit status

make: *** [makefile:5: tm] Error 1

понимаю, что не видит библиотеку, но я все установила.

root@hvo:~/prog/tcrv_ex# mysql_config --libs

-L/usr/lib/x86_64-linux-gnu/ -lmariadb

Подскажите пожалуйста уважаемые профессионалы, как исправить ошибку, в gcc-8 все работает



Последнее исправление: xaizek (всего исправлений: 1)

Что, так трудно сравнить две строки между собой?
Ты установила libmariadb в -L/usr/lib/x86_64-linux-gnu/
а пытаешься прилинковать libmysqlclient из -L/usr/lib/mysql
У тебя поменялось название пакета, его местоположение и архитектура процессора. Все пути и имена протухли…
Тебе надо не самой пути прописывать, а использовать ответ mysql_config:

gcc-10 -o tcrv main.o -lstdc++ `mysql_config --libs` 

и при компиляции исходника не нужна библиотека -lstdc++, а вот пути для h-файлов могли поменяться, поэтому

gcc-10 -c main.cpp `mysql_config --include`
sigurd ★★★★★
()
Последнее исправление: sigurd (всего исправлений: 2)

как исправить ошибку, в gcc-8 все работает

Это ж С++… main.o собирается из исходников или линкуется версия, собранная предыдущим компилятором?

anonymous
()
Ответ на: комментарий от anonymous

А, сорри, выше уже нашли проблему.

anonymous
()
Ответ на: комментарий от fsb4000

Ой, спасибо Вам большое - получилось!!! Спасибо огромное всем, кто ответил! Ведь весь вечер мучилась…

marip68
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.