The OpenNET Project / Index page

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

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

"gcc и g++ . Не компилятся :-(" 
Сообщение от greenetc Искать по авторуВ закладки(??) on 16-Дек-05, 17:20  (MSK)
программа компилится такими командами

g++ `paragui-config --cflags` -c my.cpp

g++ my.o -o my `paragui-config --libs`

при использвании gcc

gcc -x c++ `paragui-config --cflags` -c my.cpp

компилируется (в исходнике есть строка #include "libmpdlient.h" в папке с компилируемой программой лежат файлы libmpdclient.h и libmpdclient.c ) но при запуске команды

gcc my.o -o my `paragui-config --libs`

выдаёт ошибку чтоен видит функций которые реализованы в libmpdclient.c

вот файл paragui-config

Код:


#!/bin/sh

prefix=/usr
exec_prefix=${prefix}
exec_prefix_set=no

usage="\
Usage: paragui-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--libs] [--cflags]"

if test $# -eq 0; then
      echo "${usage}" 1>&2
      exit 1
fi

while test $# -gt 0; do
  case "$1" in
  -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
  *) optarg= ;;
  esac

  case $1 in
    --prefix=*)
      prefix=$optarg
      if test $exec_prefix_set = no ; then
        exec_prefix=$optarg
      fi
      ;;
    --prefix)
      echo $prefix
      ;;
    --exec-prefix=*)
      exec_prefix=$optarg
      exec_prefix_set=yes
      ;;
    --exec-prefix)
      echo $exec_prefix
      ;;
    --version)
      echo 1.0.4
      ;;
    --cflags)
      if test ${prefix}/include != /usr/include ; then
        includes=-I${prefix}/include
      fi
      echo $includes -I${prefix}/include/paragui  -I/usr/include/freetype2 -I/usr/include/SDL -D_REENTRANT  
      ;;
    --libs)
      if [ "`uname`" = "SunOS" ]; then
        libdirs="-L${exec_prefix}/lib -R${exec_prefix}/lib"
      else
        libdirs="-L${exec_prefix}/lib"
      fi
      echo $libdirs -lparagui -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lSDL_image -lpthread   -lfreetype  -lstdc++
      ;;
    --static-libs)
      if [ "`uname`" = "SunOS" ]; then
        libdirs="-L${exec_prefix}/lib -R${exec_prefix}/lib"
      else
        libdirs="-L${exec_prefix}/lib"
      fi
      echo $libdirs -lparagui -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread   -lfreetype  -lstdc++
      ;;
    *)
      echo "${usage}" 1>&2
      exit 1
      ;;
  esac
  shift
done



  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]

1. "gcc и g++ . Не компилятся :-(" 
Сообщение от vnp emailИскать по авторуВ закладки(ok) on 17-Дек-05, 01:57  (MSK)
>программа компилится такими командами
>
>g++ `paragui-config --cflags` -c my.cpp
>
>g++ my.o -o my `paragui-config --libs`
>
>при использвании gcc
>
>gcc -x c++ `paragui-config --cflags` -c my.cpp
>
>компилируется (в исходнике есть строка #include "libmpdlient.h" в папке с компилируемой программой
>лежат файлы libmpdclient.h и libmpdclient.c ) но при запуске команды
>
>gcc my.o -o my `paragui-config --libs`
>
>выдаёт ошибку чтоен видит функций которые реализованы в libmpdclient.c

Вы пытаетесь собрать my.o с библиотеками

>      echo $libdirs -lparagui -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lSDL_image -lpthread   -lfreetype  -lstdc++

Про функции из libmpdclient.c линкеру ничего не известно. Попробуйте намекнуть ему, что libmpdclient.o тоже хочет поиграть:

gcc my.o libmpdclient.o -o my `paragui-config --libs`

(откуда брать libmpdclient.o, попробуйте догадаться самостоятельно)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "gcc и g++ . Не компилятся :-(" 
Сообщение от greenetc Искать по авторуВ закладки(??) on 17-Дек-05, 17:28  (MSK)
>gcc my.o libmpdclient.o -o my `paragui-config --libs`
>
>(откуда брать libmpdclient.o, попробуйте догадаться самостоятельно)

gcc -c libmpdclient.c    

так ?

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "gcc и g++ . Не компилятся :-(" 
Сообщение от greenetc Искать по авторуВ закладки(??) on 19-Дек-05, 11:35  (MSK)
>>программа компилится такими командами
>>
>>g++ `paragui-config --cflags` -c my.cpp
>>
>>g++ my.o -o my `paragui-config --libs`
>>
>>при использвании gcc
>>
>>gcc -x c++ `paragui-config --cflags` -c my.cpp
>>
>>компилируется (в исходнике есть строка #include "libmpdlient.h" в папке с компилируемой программой
>>лежат файлы libmpdclient.h и libmpdclient.c ) но при запуске команды
>>
>>gcc my.o -o my `paragui-config --libs`
>>
>>выдаёт ошибку чтоен видит функций которые реализованы в libmpdclient.c
>
>Вы пытаетесь собрать my.o с библиотеками
>
>>      echo $libdirs -lparagui -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lSDL_image -lpthread   -lfreetype  -lstdc++
>
>Про функции из libmpdclient.c линкеру ничего не известно. Попробуйте намекнуть ему, что
>libmpdclient.o тоже хочет поиграть:
>
>gcc my.o libmpdclient.o -o my `paragui-config --libs`
>
>(откуда брать libmpdclient.o, попробуйте догадаться самостоятельно)


Всё сработало .Спасибо огромное. Сделал gcc -c libmpdclient.c , получил файл с расширением .о и всё слинковалось ....НО !!!

теперь встала проблема с mysql ...
пишу в проге #include <mysql.h> опять таже проблема .... компилится , но  не линкуется ... пишет что не видит функции работы с mysql (mysql_connect и др) ... тот же вопрос ... что делать? Тут ведь я уже не смогу взять гдето файл mysql.o ...

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "gcc и g++ . Не компилятся :-(" 
Сообщение от Cesar Искать по авторуВ закладки(ok) on 19-Дек-05, 11:56  (MSK)
>Всё сработало .Спасибо огромное. Сделал gcc -c libmpdclient.c , получил файл с
>расширением .о и всё слинковалось ....НО !!!
>
>теперь встала проблема с mysql ...
>пишу в проге #include <mysql.h> опять таже проблема .... компилится , но  не линкуется ... пишет что не видит функции работы с mysql (mysql_connect и др) ... тот же вопрос ... что делать? Тут ведь я уже не смогу взять гдето файл mysql.o ...


В этом случае стоит подключить разделяемую библиотеку, libmysql.so, если не ошибаюсь.
На этапе линковки добавляем -lmysql и наслаждаемся :). Если же библиотека лежит в нестандартном месте, например /home/cesar/lib/libmysql.so, в чём я сильно сомневаюсь, то спасёт -L/home/cesar/lib

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "gcc и g++ . Не компилятся :-(" 
Сообщение от greenetc Искать по авторуВ закладки(??) on 19-Дек-05, 15:43  (MSK)
>>Всё сработало .Спасибо огромное. Сделал gcc -c libmpdclient.c , получил файл с
>>расширением .о и всё слинковалось ....НО !!!
>>
>>теперь встала проблема с mysql ...
>>пишу в проге #include <mysql.h> опять таже проблема .... компилится , но  не линкуется ... пишет что не видит функции работы с mysql (mysql_connect и др) ... тот же вопрос ... что делать? Тут ведь я уже не смогу взять гдето файл mysql.o ...
>
>
>В этом случае стоит подключить разделяемую библиотеку, libmysql.so, если не ошибаюсь.
>На этапе линковки добавляем -lmysql и наслаждаемся :). Если же библиотека лежит
>в нестандартном месте, например /home/cesar/lib/libmysql.so, в чём я сильно сомневаюсь, то
>спасёт -L/home/cesar/lib

я пробывал добавлять -lmysql , модифицировав скрипт
.......
.......
--libs)
      if [ "`uname`" = "SunOS" ]; then
        libdirs="-L${exec_prefix}/lib -R${exec_prefix}/lib"
      else
        libdirs="-L${exec_prefix}/lib"
      fi
      echo $libdirs -lparagui -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lSDL_image -lpthread -lmysql  -lfreetype  -lstdc++
      ;;

это не помогло , пищет что не найдена mysql .

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "gcc и g++ . Не компилятся :-(" 
Сообщение от gyn61 Искать по авторуВ закладки(ok) on 19-Дек-05, 22:34  (MSK)
Библиотека называется libmysqlclient.so и подключать её надо через -lmysqlclient

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "gcc и g++ . Не компилятся :-(" 
Сообщение от greenetc Искать по авторуВ закладки(??) on 21-Дек-05, 16:24  (MSK)
>>>Всё сработало .Спасибо огромное. Сделал gcc -c libmpdclient.c , получил файл с
>>>расширением .о и всё слинковалось ....НО !!!
>>>
>>>теперь встала проблема с mysql ...
>>>пишу в проге #include <mysql.h> опять таже проблема .... компилится , но  не линкуется ... пишет что не видит функции работы с mysql (mysql_connect и др) ... тот же вопрос ... что делать? Тут ведь я уже не смогу взять гдето файл mysql.o ...
>>
>>
>>В этом случае стоит подключить разделяемую библиотеку, libmysql.so, если не ошибаюсь.
>>На этапе линковки добавляем -lmysql и наслаждаемся :). Если же библиотека лежит
>>в нестандартном месте, например /home/cesar/lib/libmysql.so, в чём я сильно сомневаюсь, то
>>спасёт -L/home/cesar/lib
>
>я пробывал добавлять -lmysql , модифицировав скрипт
>.......
>.......
>--libs)
>      if [ "`uname`" = "SunOS" ];
>then
>        libdirs="-L${exec_prefix}/lib -R${exec_prefix}/lib"
>      else
>        libdirs="-L${exec_prefix}/lib"
>      fi
>      echo $libdirs -lparagui -L/usr/lib -Wl,-rpath,/usr/lib -lSDL
>-lSDL_image -lpthread -lmysql  -lfreetype  -lstdc++
>      ;;
>
>это не помогло , пищет что не найдена mysql .
сделал .
Добавил в строку опций:

-L/usr/lib/mysql -lmysqlclient

спасибо всем

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]




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

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