На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела *nix / gcc / Eclipse / Qt / wxWidgets / GTK+
  • При создании темы ОБЯЗАТЕЛЬНО указывайте версию тулкита / библиотеки / компилятора.
  • Перед тем как задать вопрос, сформулируйте его правильно, чтобы вас могли понять.
  • Нарушение Правил может повлечь наказание со стороны модераторов.


Полезные ссылки:
user posted image Boost по-русски
user posted image Qt по-русски
Модераторы: archimed7592
  
> Использование функций из библиотек .so , Ubuntu и Code::Blocks
    Уважаемые, кто работает на Linux в Code::Blocks ,
    или в другой среде не важно установлю , подскажите имеется библиотеки .so и .h к ним как подключить их к среде разработке чтобы использовать функции из этих библиотек в своем приложении на С++
    все бы не чего и вопрос может был бы не вопрос
    но к описанию к этим библиотекам сказано "Клиентские библиотеки используются в расширении для php. "
    но я чувствую что их можно использовать
    поскажите как их подключить и проверить
    Прикреплённый файлПрикреплённый файлphplinux.7z (81,76 Кбайт, скачиваний: 84)
    Сообщение отредактировано: kms -
      Project->Build options->[Debug/Release]->Linker settings->Link libraries->Add
        Цитата Олег М @
        Project->Build options->[Debug/Release]->Linker settings->Link libraries->Add

        ОК наконецто попробую а то дома на Ubunte сижу а еще не одной буквы не скомпилил , все на Win да на Win
        щас с работы прийду и стартану делать Админку под Linux
          Цитата Олег М @
          Project->Build options->[Debug/Release]->Linker settings->Link libraries->Add

          выставил , но что то не идет или не подключилось
          при запуске ошибки
          ExpandedWrap disabled
            ||=== Build: Debug in Test1 (compiler: GNU GCC Compiler) ===|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|106|error: expected initializer before ‘hcSqlCbkSrvMsgT’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|107|error: expected initializer before ‘hcSqlCbkStmtSrvMsgT’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|109|error: expected initializer before ‘hcSqlCbkSrvUserSendT’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|110|error: expected initializer before ‘hcSqlCbkStmtSrvUserSendT’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|121|error: expected initializer before ‘hcSqlInit’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|125|error: expected initializer before ‘hcSqlDone’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|128|error: expected initializer before ‘hcSqlCheckInit’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|132|error: expected initializer before ‘hcSqlAllocConnect’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|136|error: expected initializer before ‘hcSqlFreeConnect’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|140|error: expected initializer before ‘hcSqlConnect’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|147|error: expected initializer before ‘hcSqlDisconnect’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|157|error: expected initializer before ‘hcSqlGetConnectAttr’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|172|error: expected initializer before ‘hcSqlSetConnectAttr’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|180|error: expected initializer before ‘hcSqlAlterPassword’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|188|error: expected initializer before ‘hcSqlAllocStmt’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|193|error: expected initializer before ‘hcSqlFreeStmt’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|197|error: expected initializer before ‘hcSqlSetStmtAttr’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|204|error: expected initializer before ‘hcSqlExecDirect’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|209|error: expected initializer before ‘hcSqlExecDirectAsync’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|214|error: expected initializer before ‘hcSqlExecDirectQuery’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|218|error: expected initializer before ‘hcSqlNumResultCols’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|223|error: expected initializer before ‘hcSqlRowCount’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|284|error: expected initializer before ‘hcSqlGetStmtAttr’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|294|error: expected initializer before ‘hcSqlOpenResults’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|299|error: expected initializer before ‘hcSqlReadResults’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|307|error: expected initializer before ‘hcSqlCloseResults’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|317|error: expected initializer before ‘hcSqlIncludeResultsItem’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|329|error: expected initializer before ‘hcSqlExcludeResultsItem’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|336|error: expected initializer before ‘hcSqlReplaceResultsItem’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|350|error: expected initializer before ‘hcSqlGetResultsItem’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|362|error: expected initializer before ‘hcSqlStmtTouch’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|366|error: expected initializer before ‘hcSqlStmtDeleteResults’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|371|error: expected initializer before ‘hcSqlStmtSort’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|377|error: expected initializer before ‘hcSqlStmtUnsort’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|386|error: expected initializer before ‘hcSqlInsertRecord’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|394|error: expected initializer before ‘hcSqlAddRecords’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|402|error: expected initializer before ‘hcSqlReadRecordByHandle’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|410|error: expected initializer before ‘hcSqlHandleFromRecNo’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|425|error: expected initializer before ‘hcSqlStmtEdit’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|436|error: expected initializer before ‘hcSqlFormRecordsSet’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|443|error: expected initializer before ‘hcSqlConnReadMsg’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|455|error: expected initializer before ‘hcSqlPrepare’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|460|error: expected initializer before ‘hcSqlExecute’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|468|error: expected initializer before ‘hcTestConnect’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|496|error: expected initializer before ‘hscliProcStart’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|497|error: expected initializer before ‘hscliProcExit’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|498|error: expected initializer before ‘hscliThrdStart’|
            /home/vova/Рабочий стол/Pro/Test1/hscli.h|499|error: expected initializer before ‘hscliThrdExit’|
            ||=== Build failed: 48 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|


          Добавлено
          хотя даже ни одной функции не вызываю , а только подключил "hscli.h" и hscli.so.1
          mai.n
          ExpandedWrap disabled
            #define HYCFG_WIN32
             
            #include <iostream>
            #include "hscli.h"
             
            using namespace std;
             
            int main()
            {
                int err = -5 ;
             
                //err = hcSqlParmT Init = { sizeof(Init) }; // Адрес структуры с параметрами инициализации
             
                //err = hcSqlInit(&Init)        ; // Инициализация клиентской части
             
                //err = hcSqlCheckInit()        ; // Проверка завершения инициализации
             
                cout << err << endl;
             
                return 0;
             
            }
            #define HYCFG_WIN32 поменял на #define HYCFG_LINUX

            ошибок нет но и не запускается
              kms, посмотри тут простой пример.
                Цитата ЫукпШ @
                посмотри тут простой пример.

                посмотрел но даже не могу сообразить как применить к своему случаю,
                у меня получается не может распознать объявления функций из hscli.so.1 может библиотека кривая ? как бы это можно было узнать ,
                или в Code::Blocs чето не то делаю
                  Цитата kms @
                  у меня получается не может распознать объявления функций из hscli.so.1 может библиотека кривая ? как бы это можно было узнать ,

                  Тогда попробуй явную загрузку.
                  dlopen + dlsym + dlclose.
                    Цитата ЫукпШ @
                    dlopen + dlsym + dlclose.
                    это надо прописать в С++ коде ???
                    я правильно понимаю ?

                    Добавлено
                    да вот еще при сборке не заметил раньше
                    ExpandedWrap disabled
                      -------------- Build: Debug in Test1 (compiler: GNU GCC Compiler)---------------
                       
                      g++ -L../Test1 -o bin/Debug/Test1 obj/Debug/main.o   lib/hscli.so.1
                      lib/hscli.so.1: error adding symbols: Файл в неправильном формате
                      collect2: error: ld returned 1 exit status
                      Process terminated with status 1 (0 minute(s), 0 second(s))
                      1 error(s), 0 warning(s) (0 minute(s), 0 second(s))
                      делаю
                      ExpandedWrap disabled
                        #define HYCFG_LINUX
                         
                        #include <dlfcn.h>
                        #include <iostream>
                        #include <stdio.h>
                        #include <string.h>
                        #include "hscli.h"
                         
                        using namespace std;
                         
                        int main()
                        {
                            
                            void *x = dlopen( "/home/vova/Test1/lib/hscli.so.1", RTLD_LAZY );
                         
                            cout << err << endl;
                         
                            return 0;
                         
                        }


                      ошибка
                      ExpandedWrap disabled
                        ||=== Build: Debug in Test1 (compiler: GNU GCC Compiler) ===|
                        /home/vova/Test1/main.cpp||In function ‘int main()’:|
                        /home/vova/Test1/main.cpp|19|warning: unused variable ‘x’ [-Wunused-variable]|
                        ||error: ld returned 1 exit status|
                        ||=== Build failed: 1 error(s), 1 warning(s) (0 minute(s), 0 second(s)) ===|
                        А что такое err? Сделай вместо него errno
                          как проверить нормальные ли эти либы
                          ExpandedWrap disabled
                            vova@comp:~$ nm -D '/home/vova/Рабочий стол/php/hscli.so.1'
                                     U abort
                                     U __assert_fail
                                     U calloc
                                     U __cxa_allocate_exception
                                     U __cxa_atexit
                                     w __cxa_finalize
                                     U __cxa_throw
                                     U fclose
                                     U feof
                                     U fgets
                                     U fopen
                                     U fprintf
                                     U fputs
                                     U free
                                     U fscanf
                                     U getpid
                                     w __gmon_start__
                                     U __gxx_personality_v0
                            0000ad86 T hcSqlAddRecords
                            00003d5a T hcSqlAllocConnect
                            0000a33a T hcSqlAllocStmt
                            000081ae T hcSqlAlterPassword
                            00007eb2 T hcSqlCheckInit
                            00007742 T hcSqlCloseResults
                            00003e5c T hcSqlConnect
                            000077b8 T hcSqlConnReadMsg
                            00003f08 T hcSqlDisconnect
                            00007e76 T hcSqlDone
                            00009070 T hcSqlExcludeResultsItem
                            000072ce T hcSqlExecDirect
                            0000735c T hcSqlExecDirectAsync
                            000073ea T hcSqlExecDirectQuery
                            000072c4 T hcSqlExecute
                            000094a0 T hcSqlFormRecordsSet
                            00003de6 T hcSqlFreeConnect
                            0000a3cc T hcSqlFreeStmt
                            00003f7e T hcSqlGetConnectAttr
                            00009166 T hcSqlGetResultsItem
                            00007584 T hcSqlGetStmtAttr
                            0000ae1e T hcSqlHandleFromRecNo
                            00008ff4 T hcSqlIncludeResultsItem
                            00007e3c T hcSqlInit
                            0000acee T hcSqlInsertRecord
                            00007460 T hcSqlNumResultCols
                            00007610 T hcSqlOpenResults
                            000072ba T hcSqlPrepare
                            00008620 T hcSqlReadRecordByHandle
                            000076a2 T hcSqlReadResults
                            000090ea T hcSqlReplaceResultsItem
                            000074f2 T hcSqlRowCount
                            0000400a T hcSqlSetConnectAttr
                            0000a442 T hcSqlSetStmtAttr
                            0000b532 T hcSqlStmtDeleteResults
                            000091e2 T hcSqlStmtEdit
                            0000b5ac T hcSqlStmtSort
                            0000b4bc T hcSqlStmtTouch
                            0000b628 T hcSqlStmtUnsort
                            00004086 T hcTestConnect
                            00000000 A HSCLI_1.0.0.0
                            0000bcf0 T hscliLinks
                            0000bb9e T hscliProcExit
                            0000ba54 T hscliProcStart
                            0000bc6a T hscliThrdExit
                            0000bc1e T hscliThrdStart
                                     U hsGetI24
                                     U hsheapProcExit
                                     U hsheapProcStart
                                     U hsheapThrdExit
                                     U hsheapThrdStart
                                     U hsInptCheckInit
                                     U hsInptCheckRead
                                     U hsInptClose
                                     U hsInptConnect
                                     U hsInptDisconnect
                                     U hsInptLocalAddr
                                     U hsInptOpen
                                     U hsinptProcExit
                                     U hsinptProcStart
                                     U hsInptRead
                                     U hsInptReadF
                                     U hsInptRemoteAddr
                                     U hsInptSendMsg
                                     U hsInptSendMsg2
                                     U hsInptSendMsgV
                                     U hsinptThrdExit
                                     U hsinptThrdStart
                                     U hsLHeapAlloc
                                     U hsLHeapFree
                                     U hslogfProcExit
                                     U hslogfProcStart
                                     U hslogfThrdExit
                                     U hslogfThrdStart
                                     U hsLogMessage
                                     U isalpha
                                     w _Jv_RegisterClasses
                                     U localtime_r
                                     U memcmp
                                     U memcpy
                                     U memset
                                     U printf
                                     U pthread_join
                                     U pthread_kill
                                     U pthread_mutex_destroy
                                     U pthread_mutex_init
                                     U pthread_mutex_lock
                                     U pthread_mutex_unlock
                                     U pthread_self
                                     U readlink
                                     U rewind
                                     U sched_yield
                                     U snprintf
                                     U sprintf
                                     U strcat
                                     U strcpy
                                     U strlen
                                     U strncpy
                                     U strtod
                                     U strtol
                                     U time
                                     v timezone
                                     U __timezone
                                     U _Unwind_Resume
                                     U vsprintf
                                     U _ZTVN10__cxxabiv116__enum_type_infoE
                                     U _ZTVN10__cxxabiv117__class_type_infoE
                                     U _ZTVN10__cxxabiv120__si_class_type_infoE
                            vova@comp:~$


                          Добавлено
                          Цитата Олег М @
                          А что такое err? Сделай вместо него errno

                          не это вообще у меня опечатка
                            Цитата kms @

                            не это вообще у меня опечатка

                            А dlopen что возвращает?
                              ExpandedWrap disabled
                                #include <stdio.h>
                                #include "hscli.h"
                                 
                                #include <dlfcn.h>
                                #include <iostream>
                                 
                                #include <string.h>
                                 
                                int main(void)
                                {
                                 
                                  void *x = dlopen( "/home/vova/Test1/lib/hscli.so.1", RTLD_LAZY );
                                 
                                  printf("%d", x);
                                 
                                     return 0;
                                }


                              возращает
                              ExpandedWrap disabled
                                -------------- Build: Debug in Test1 (compiler: GNU GCC Compiler)---------------
                                 
                                g++ -Wall -fexceptions -m32  -c /home/vova/Code::Blocs/Test1/main.cpp -o obj/Debug/main.o
                                /home/vova/Code::Blocs/Test1/main.cpp: In function ‘int main()’:
                                /home/vova/Code::Blocs/Test1/main.cpp:14:17: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘void*’ [-Wformat=]
                                   printf("%d", x);
                                                 ^
                                g++  -o bin/Debug/Test1 obj/Debug/main.o  -m32  /usr/lib/libhscli.so /usr/lib/libhsheap.so /usr/lib/libhsinpt.so /usr/lib/libhslogf.so
                                obj/Debug/main.o: In function `main':
                                main.cpp:(.text+0x1c): undefined reference to `dlopen'
                                collect2: error: ld returned 1 exit status
                                Process terminated with status 1 (0 minute(s), 0 second(s))
                                2 error(s), 1 warning(s) (0 minute(s), 0 second(s))
                                Не найдено определение "dlopen".
                                Оно должно быть в файле "dlfcn.h".
                                Посмотри, есть ли оно там действительно.
                                ---
                                Может ты при написании исходника случайно частично использовал кирилицу ?
                                Вместо латинской "o" набрал русскую "о" или что-то в этом роде..
                                Сообщение отредактировано: ЫукпШ -
                                  Цитата ЫукпШ @
                                  Не найдено определение "dlopen".
                                  Оно должно быть в файле "dlfcn.h".

                                  он подключен текст выше,

                                  Цитата ЫукпШ @
                                  Посмотри, есть ли оно там действительно.

                                  кто ???? в смысле описание стандартной функции dlopen ?????


                                  Цитата ЫукпШ @
                                  Может ты при написании исходника случайно частично использовал кирилицу ?

                                  исходника библиотеки ???

                                  библиотека то не моя и она уже собрана , сделана , как я могу посмотреть что там внутри или хотябы проверить ее ????


                                  Цитата ЫукпШ @
                                  Вместо латинской "o" набрал русскую "о" или что-то в этом роде..

                                  а если насчет моего исходника

                                  то он даже не компилится вообще без кода
                                  даже вот такой
                                  ExpandedWrap disabled
                                    #include <stdio.h>
                                    //#include "hscli.h"
                                    //#include <dlfcn.h>
                                    //#include <iostream>
                                    //#include <string.h>
                                     
                                    int main(void)
                                    {
                                     
                                     // void *x = dlopen( "/home/vova/Test1/lib/hscli.so.1", RTLD_LAZY );
                                     
                                     // printf("%d", x);
                                     
                                      //   return 0;
                                    }
                                    Там была ошибка линкера, для dlopen тоже нужно подключать библиотеку
                                    В Project->Build options->[Debug/Release]->Linker settings->Other linker options добавь -ldl
                                    Из Link libraries удали всё

                                    ExpandedWrap disabled
                                      #include <iostream>
                                      #include <dlfcn.h>
                                       
                                      int main()
                                      {
                                          auto lib = dlopen("/home/vova/Test1/lib/hscli.so.1", RTLD_NOW);
                                          printf("%p, %s\n", lib, dlerror());
                                       
                                          return 0;
                                      }
                                      Цитата Олег М @
                                      В Project->Build options->[Debug/Release]->Linker settings->Other linker options добавь -ldl

                                      Понял деллаю
                                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                      0 пользователей:


                                      Рейтинг@Mail.ru
                                      [ Script execution time: 0,0519 ]   [ 18 queries used ]   [ Generated: 23.04.24, 15:31 GMT ]