2
如何讓GCC使用靜態庫而不是動態庫?通常情況下,您將.a文件添加到鏈接器參數。但是libssp鏈接是由-fstack-protector選項觸發的。如果編譯器找到一個而不是靜態庫,編譯器就更喜歡鏈接到共享庫。如何靜態gcc鏈接libssp?
如果我嘗試在沒有libssp.so的系統上運行生成的程序,程序將無法運行。
(系統升級上構建一些機器後,測試系統上了年紀的盒子搞砸了)
如何讓GCC使用靜態庫而不是動態庫?通常情況下,您將.a文件添加到鏈接器參數。但是libssp鏈接是由-fstack-protector選項觸發的。如果編譯器找到一個而不是靜態庫,編譯器就更喜歡鏈接到共享庫。如何靜態gcc鏈接libssp?
如果我嘗試在沒有libssp.so的系統上運行生成的程序,程序將無法運行。
(系統升級上構建一些機器後,測試系統上了年紀的盒子搞砸了)
是否
gcc -static static.c -o static -fstack-protector-all
或
gcc -static -lssp static.c -o static -fstack-protector-all
工作?你可以在生成的二進制文件上運行ldd嗎?
您使用的是哪個版本的gcc?
這可能是相關的:http://stackoverflow.com/questions/1348895/how-do-i-get-c-programs-to-link-with-gccs-stack-protector-feature-on-aix –