Как статически-связать сложную программу

У меня была такая же проблема. Вместо пользовательского сериализатора токенов я использовал MessageInspector для добавления правильного UsernameToken в метод BeforeSendRequest. Затем я применил собственное поведение, чтобы применить исправление.

Весь процесс задокументирован (с демонстрационным проектом ) в моем сообщении в блоге Поддержка дайджеста пароля базового профиля WS-I в прокси-клиенте WCF . Кроме того, вы можете просто прочитать PDF .

Если вы хотите проследить мой прогресс до решения, вы найдете его в StackOverflow под названием « Ошибка в клиенте WCF, использующем веб-сервис Axis 2 с WS-Security Имя пользователяToken PasswordDigest» ":

20
задан Cœur 15 January 2019 в 18:15
поделиться

4 ответа

Большинство autoconf сгенерированных сценариев configure позволит вам создать статическую сборку:

 ./configure --enable-static
 make

Если это не сработает, возможно, вы сможете передать флаги компоновщика через LDFLAGS , например:

 ./configure LDFLAGS=-static
32
ответ дан 29 November 2019 в 23:52
поделиться

Да, вам нужно отредактировать файл make и добавить параметр -static в gcc во время ссылки.

5
ответ дан 29 November 2019 в 23:52
поделиться

Я предполагаю, что он использует gcc для компиляции серии программ c, хотя вам придется заглянуть в Makefile, чтобы узнать.

Если это так, вы можете настроить строки gcc в makefile для статической компоновки, хотя в зависимости от структуры программы это может быть сложным изменением. Взгляните на man gcc, чтобы увидеть, как это делается.

Мне было бы интересно узнать, почему вы устанавливаете статические ссылки. Рассматривали ли вы использование вместо этого предварительного связывания?

Вы должны знать, что при этом могут возникнуть проблемы с лицензией, если все компоненты не являются GPL.

1
ответ дан 29 November 2019 в 23:52
поделиться

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

2
ответ дан 29 November 2019 в 23:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: