Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 4 из 4
  1. #1
    Аватар для oukibt
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.02.2020
    Сообщений
    26
    Репутация:
    3 ±

    Компиляция плагина под линукс

    Приветствую.

    У меня возникла ошибка при попытке запустить скомпилированный плагин на линукс:

    1. Loading plugin: UTFtoRussian.so
    2. [09:37:13] Failed (plugins/UTFtoRussian.so: wrong ELF class: ELFCLASS64)
    3. [09:37:13] Loaded 0 plugins.


    После чего мне посоветовали перекомпилировать плагин для 32 bit с флагом -m32, что я собственно и сделал (компилировал в CodeBlocks). Далее получил эту ошибку:

    1. [10:14:44] Loading plugin: UTFtoRussian.so
    2. [10:14:44] Failed (plugins/UTFtoRussian.so: only ET_DYN and ET_EXEC can be loaded)


    Но меня больше смутила не ошибка, а то, что вес файла составлял 2.5 КБ.
    После чего мне посоветовали сменить шаблон и взять вот этот (https://github.com/Southclaws/samp-plugin-boilerplate/). С Ним файл стал весить чуть меньше, чем 30 КБ, но я все равно получал ошибки, вот та, на которой я остановился:

    1. Failed (/usr/lib32/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by plugins/UTFtoRussian.so))


    Лично мне не хотелось бы менять шаблон, и собственно вопрос: что делать с этой ошибкой (в шаблоне от DC и Double V) ?

    1. [10:14:44] Loading plugin: UTFtoRussian.so
    2. [10:14:44] Failed (plugins/UTFtoRussian.so: only ET_DYN and ET_EXEC can be loaded)

  2. #2
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от oukibt Посмотреть сообщение
    После чего мне посоветовали перекомпилировать плагин для 32 bit с флагом -m32, что я собственно и сделал (компилировал в CodeBlocks).
    Я так понимаю, проект для CodeBlocks был создан вручную (и, скорее всего, был выбран неправильный тип цели построения - например, просто объектный файл или статическая библиотека вместо динамической)? Файл CMakeLists.txt там не просто так; если сгенерировать проект через CMake, флаг -m32 добавится автоматически и больше никаких проблем со сборкой возникнуть не должно.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  3. Пользователь сказал cпасибо:
    oukibt (19.01.2021)
  4. #3
    Аватар для oukibt
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.02.2020
    Сообщений
    26
    Репутация:
    3 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Я так понимаю, проект для CodeBlocks был создан вручную
    Да, действительно так, не думал, что это может на что-то влиять. Проект скомпилировался, висит около 30 КБ, но такая же проблема как с этим (https://github.com/Southclaws/samp-plugin-boilerplate/) шаблоном. Ошибка

    1. Failed (/usr/lib32/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by plugins/UTFtoRussian.so))


    Пробовал исправить её следовав по инструкции отсюда (https://stackoverflow.com/questions/...4-20-not-found), но система утверждает, что более новые файлы уже установлены ( В том числе с нужный 3.4.21 )

  5. #4
    Аватар для oukibt
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.02.2020
    Сообщений
    26
    Репутация:
    3 ±
    Собственно, проблема решена, установил на этот раз линукс как ОС, и никаких проблем не возникло

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •