eclipse等IDE 增加GCC 安全編譯選項

2021-10-10 05:19:37 字數 671 閱讀 5413

以前對於gcc的安全編譯選項,一點都沒有了解過,反正程式功能只要滿足需求,也不會去關注是不是安全。但是這次公司的專案合作方對於安全這一塊非常看重,姑且不說軟硬體方面的加密,只說對於程式編譯選項的要求,就有如下那麼多。

c語言需開啟編譯選項:

-wl -z relro -z now -wl -z noexecstack -fpic -fpie -pie

-fstack-protector-all/-fstack-protector-strong(二選1) -d_fortify_source=2 -o2 -fvisibility=hidden -s(strip)(可選)

漫談linux系統安全缺陷緩解機制/

但是在新增了-fpic -fpie -pie這兩個選項以後,程式死活編譯不通過。最後發現,在用eclipse等ide構建可執行程式時,-fpic和-fpie -pie要分開使用,-fpic在gcc編譯階段使用,而-fpie -pie是在gcc鏈結階段使用,在eclipse配置中分別為編譯和鏈結配置加上選項,程式終於能順利編譯了?

理想很美好,但現實是殘忍的,程式仍然無法成功編譯通過,這次的錯誤原因的由於程式依賴了幾個第三方開源靜態庫,但是加上了-fpie後,無法直接使用靜態庫編譯。這裡有兩種解決方式可以選擇:第一種,將靜態庫替換為動態庫即可;第二種,重新編譯開源庫,在./configure時加上cflags=-fpic選項。

eclipse安裝IDE的路徑

通用路徑為 上面總共有四個紅色的x.x 一般情況下為x.x.x第乙個x是主版本號,第二個x是次版本號,第三個x是修訂版本號 四個位置代表的含義 第乙個位置代表 springsource tool suite的版本號 第二個位置代表 eclipse版本號的前兩位 第三個位置代表 springsourc...

gc 等相關等待事件描述

gc current cr request 這些等待事件僅在 cr或者當前緩衝區的 gc請求正在進行時才相關 該請求完成之前,這些事件充當佔位符 gc current cr 2 3 way 請求當前塊或者 cr塊,然後在經過兩三個網路中繼段後收到這些塊 當塊不忙或者未堵塞時,會立即處理請求 gc c...

mac下增加eclipse記憶體

在mac上找不到eclipse.ini檔案編輯記憶體限制,在eclipse安裝目錄右擊eclipse程式,選 顯示包內容 eclipse.ini就在 content macos下。1.引數的含義 vmargs xms128m xmx512m xx permsize 64m xx maxpermsiz...