GNU/Linux >> Znalost Linux >  >> Linux

Jak staticky propojit složitý program

Pokud nemůžete zkompilovat statickou binárku, měl jsem dobré výsledky pomocí Statifier.


Většina autoconf vygenerováno configure skript vám umožní vytvořit statické sestavení:

 ./configure --enable-static
 make

Pokud to nefunguje, možná budete moci předat příznaky linkeru pomocí LDFLAGS , takto:

 ./configure LDFLAGS=-static

Předpokládám, že ke kompilaci řady c programů používá gcc, i když se budete muset podívat do souboru Makefile, abyste to zjistili.

Pokud ano, můžete upravit řádky gcc v makefile tak, aby prováděly statické propojení, i když v závislosti na struktuře programu to může být složitá změna. Podívejte se na man gcc, abyste viděli, jak se to dělá.

Zajímalo by mě, proč staticky propojujete. Uvažovali jste o použití předběžného propojení?

Měli byste si být vědomi toho, že pokud všechny komponenty nejsou GPL, mohou nastat problémy s licencí.


Jo, musíte upravit soubor make a přidat parametr -static do gcc během odkazu.


Linux
  1. Jak přesměrovat výstup programu do souboru ZIP?

  2. Ubuntu – Jak nastavit statickou IP v Ubuntu?

  3. Jak nainstalovat Gcc 4.7?

  1. Nastavit statickou IP na Debianu 11 – Jak na to?

  2. Jak ukončit vlákno v programu C ( příklad pthread_exit )

  3. Statický odkaz funkce sdílené knihovny v gcc

  1. Jak provést atomový přírůstek a načtení v C?

  2. Jak zahrnout statickou knihovnu do makefile

  3. jak nainstalovat gcc 4.9.2 na RHEL 7.4