Форум русскоязычного сообщества Ubuntu


Автор Тема: Библиотеки .so.1  (Прочитано 1530 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн vovanto

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Библиотеки .so.1
« : 02 Апреля 2017, 12:36:49 »
  Подскажите возможно ли узнать для какой версии и вообще под какой дистрибутив предназначена библиотека .so.1
и вообще можно ли переделать .so.1  что бы она подключалась на Ubuntu 16.04
для использования в своей программе
а то сейчас дает ошибку
Цитировать
-------------- Build: Debug in Test1 (compiler: GNU GCC Compiler)---------------

g++ -L../Test1 -o bin/Debug/Test1 obj/Debug/main.o   lib/hscli.so lib/hsheap.so lib/hsinpt.so lib/hslogf.so
lib/hscli.so: 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))
 

Оффлайн archuser

  • Активист
  • *
  • Сообщений: 686
    • Просмотр профиля
Re: Библиотеки .so.1
« Ответ #1 : 02 Апреля 2017, 13:05:57 »
Библиотеки то у вас 32-битные, а целевая платформа 64-битная?
uname -mИ собираете 64-битное приложение, задействуя 32-битные библиотеки? Тогда уж так:
g++ -m32 бла-бла-бла
« Последнее редактирование: 02 Апреля 2017, 13:08:21 от archuser »

Оффлайн vovanto

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Библиотеки .so.1
« Ответ #2 : 02 Апреля 2017, 13:23:30 »
Библиотеки то у вас 32-битные, а целевая платформа 64-битная?
Код: [Выделить]
uname -m
И собираете 64-битное приложение, задействуя 32-битные библиотеки? Тогда уж так:
Код: [Выделить]
g++ -m32 бла-бла-бла


 спасибо за ответ ,  я даже не знаю как собираю проект , у  меня Code::Blocs


Пользователь добавил сообщение 02 Апреля 2017, 13:34:13:
Вот сами библиотеки

Пользователь добавил сообщение 02 Апреля 2017, 13:35:17:
смотрю
Цитировать
vova@comp:~$ file /usr/lib/hscli.so.1
/usr/lib/hscli.so.1: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
vova@comp:~$
« Последнее редактирование: 02 Апреля 2017, 13:35:17 от vovanto »

Оффлайн archuser

  • Активист
  • *
  • Сообщений: 686
    • Просмотр профиля
Re: Библиотеки .so.1
« Ответ #3 : 02 Апреля 2017, 13:37:43 »
Библиотеки я уже видел. Они 32-битные. А вот вашу целевую платформу вы стесняетесь показывать. Скопируйте сюда  вывод команды:
uname -m

Оффлайн vovanto

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Библиотеки .so.1
« Ответ #4 : 02 Апреля 2017, 13:51:00 »
Библиотеки я уже видел. Они 32-битные. А вот вашу целевую платформу вы стесняетесь показывать. Скопируйте сюда  вывод команды:
vova@comp:~$ uname -m
x86_64
vova@comp:~$


Пользователь добавил сообщение 02 Апреля 2017, 13:52:27:
я не стесняюсь я просто не знаю как выставить в Code::Blocs  приложение x32 битное



Пользователь добавил сообщение 02 Апреля 2017, 13:54:35:
вот еще посмотрел
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 02 Апреля 2017, 13:56:26 от vovanto »

Оффлайн archuser

  • Активист
  • *
  • Сообщений: 686
    • Просмотр профиля
Re: Библиотеки .so.1
« Ответ #5 : 02 Апреля 2017, 13:57:13 »
Как я и думал, поэтому в настройках проекта добавьте опцию компилирования -m32. Соберете 32-битную программу. А если необходимо собрать 64-битную программу, то без перекомпиляции самих библиотек (при наличии их исходников) на 64-битной архитектуре не обойтись.

Оффлайн vovanto

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Библиотеки .so.1
« Ответ #6 : 02 Апреля 2017, 14:08:36 »
Как я и думал, поэтому в настройках проекта добавьте опцию компилирования -m32. Соберете 32-битную программу.
я согласен но я не знаю как это сделать ,   у меня Code::Blocs

Оффлайн archuser

  • Активист
  • *
  • Сообщений: 686
    • Просмотр профиля
Re: Библиотеки .so.1
« Ответ #7 : 02 Апреля 2017, 14:16:33 »
В меню Project->Build Options. Вкладка Compiler settings. Вкладка Compiler Flags. Флажок Target x86 (32bit) [-m32]

Оффлайн vovanto

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Библиотеки .so.1
« Ответ #8 : 02 Апреля 2017, 22:38:36 »
В меню Project->Build Options. Вкладка Compiler settings. Вкладка Compiler Flags. Флажок Target x86 (32bit) [-m32]
ОК делаю

Пользователь добавил сообщение 02 Апреля 2017, 22:52:47:
Поставил только теперь вываливает ошибка
Цитировать
-------------- Clean: Debug in Test1 (compiler: GNU GCC Compiler)---------------

Cleaned "Test1 - Debug"

-------------- 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
In file included from /usr/include/stdio.h:27:0,
                 from /home/vova/Code::Blocs/Test1/main.cpp:1:
/usr/include/features.h:367:25: fatal error: sys/cdefs.h: Нет такого файла или каталога
compilation terminated.
Process terminated with status 1 (0 minute(s), 0 second(s))
1 error(s), 0 warning(s) (0 minute(s), 0 second(s))
 

Пользователь добавил сообщение 02 Апреля 2017, 22:58:33:
  Даже если просто запускаю такое
#include <stdio.h>
 
int main(void)
{

 
     return 0;
}
то все равно ошибка которая выше ,
« Последнее редактирование: 02 Апреля 2017, 22:58:33 от vovanto »

Оффлайн archuser

  • Активист
  • *
  • Сообщений: 686
    • Просмотр профиля
Re: Библиотеки .so.1
« Ответ #9 : 02 Апреля 2017, 23:05:34 »
sudo apt-get install g++-multilib

Оффлайн vovanto

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Библиотеки .so.1
« Ответ #10 : 02 Апреля 2017, 23:06:29 »
 

     Ребята вродебы что то пошло , 
  на одном буржуйском сайте нашел
Цитировать
sudo apt-get install gcc-multilib g++-multilib

Пользователь добавил сообщение 02 Апреля 2017, 23:07:25:
archuser,    синхроннизировались  :)

Пользователь добавил сообщение 02 Апреля 2017, 23:08:29:
archuser,  а как тут или плюсануть или как ? не могу не че найти ,   с Вашей помощью почти вопрос решил


Пользователь добавил сообщение 02 Апреля 2017, 23:10:42:
теперь вот такая ошибка
Цитировать
||=== Build: Debug in Test1 (compiler: GNU GCC Compiler) ===|
obj/Debug/main.o||In function `main':|
main.cpp|| undefined reference to `hcSqlInit(hcSqlParmT*)'|
main.cpp|| undefined reference to `hcSqlCheckInit()'|
||error: ld returned 1 exit status|
||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

Пользователь добавил сообщение 02 Апреля 2017, 23:11:33:
вот при таком коде #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 );

     int err;
     struct hcSqlParmT Init;

     err = hcSqlInit(&Init);
     printf("%d", err);
     err = hcSqlCheckInit();
     printf("%d", err);
     return 0;
}
« Последнее редактирование: 02 Апреля 2017, 23:11:33 от vovanto »

Оффлайн archuser

  • Активист
  • *
  • Сообщений: 686
    • Просмотр профиля
Re: Библиотеки .so.1
« Ответ #11 : 02 Апреля 2017, 23:41:01 »
vovanto, а вы подрубили библиотеки к проекту?

Оффлайн vovanto

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Библиотеки .so.1
« Ответ #12 : 04 Апреля 2017, 03:07:48 »
vovanto, а вы подрубили библиотеки к проекту?
да обязательно ,  в Code::Blocs ->  Build Options  ->  Linker settings -> Link libraries  - Add
 

Пользователь добавил сообщение 04 Апреля 2017, 03:13:09:
Код: [Выделить]
sudo apt-get install g++-multilib
Прошу извинить как то пропустил сообщение,  сечас попробую Ваш вариант
« Последнее редактирование: 04 Апреля 2017, 03:13:09 от vovanto »

 

Страница сгенерирована за 0.035 секунд. Запросов: 25.