компиляция приложений на c ++, чтобы они могли работать и на других компьютерах

StackOverflow https://stackoverflow.com/questions/534183

Вопрос

Итак, у меня есть это очень простое SDL-приложение, которое я хочу иметь возможность передать своему другу, не заставляя его загружать целую кучу SDL-пакетов.

как я могу это сделать?Мне сказали использовать эту строку для компиляции:(обратите внимание, что я использую ubuntu linux, как и мой друг, и что это приложение отлично компилируется и запускается без параметров "-Wl,-Bstatic".)

    g++ test-sdl.cpp -o test-sdl -Wl,-Bstatic -lSDL_image -lSDL

Но потом я получаю эту ошибку:

    /usr/bin/ld: cannot find -lgcc_s  
    collect2: ld returned 1 exit status

почему я получаю эту ошибку?как мне это исправить?должен ли я вообще делать это таким образом?Есть ли другой / более простой / альтернативный способ?

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

Спасибо.

Это было полезно?

Решение

В долгосрочной перспективе вам лучше всего было бы выяснить, как создать .debs, и тогда система управления пакетами вашего друга сможет позаботиться об установке всех необходимых зависимостей.Если вы хотите распространять пакеты более широко, использование собственной системы упаковки платформы по назначению избавит вас и ваших пользователей от множества головных болей.

Взгляните на руководство Ubuntu по упаковка и pbuilder ( сборщик ).

Лично я научился делать это для своих собственных проектов (на Debian) у Мартина Краффта Книга Debian, и найдите , используя yada значительно упрощает процесс.

Другие советы

Я думаю, вам следует избавиться от -B (это изменяет путь поиска, см. man g ++, и, таким образом, вы больше не сможете найти свои библиотеки).

Переключатель, который вы имели в виду, - статический, без буквы B.

Редактировать в ответ на комментарии:извините, это было неполно.Вместо этого замените все "-Wl,-Bstatic" только на "-static".

Как писал codelogic, -static не является опцией для компоновщика (что подразумевает -Wl).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top