最近對dpdk生成庫做了乙個封裝,需要對log函式rte_log做一些修改,為了避免對原來的函式產生影響,因此在同檔案下將該函式重新拷貝了乙份,改名為rte_test_log(),在這個函式中修改。同時在**件中新增了該函式的定義。
但在使用時,程式提示找不到該函式。
nm 有這個函式,但就是ld不過,奇怪啊
經過一番分析與資料查詢,發現dpdk的編譯利用了ld的--version-script編譯選項,
該選項的作用就是指定乙個檔案,將動態庫中需要匯出的函式寫入動態庫中,
而其他未寫入的函式只能內部可見,外部無法呼叫。
例如在rte_eal_version.map檔案中定義了:
dpdk_2.0 {
global:
__rte_panic;
devargs_list;
rte_log;
local: *;
因此,如果要在外部使用新定義的***_eal_init()函式,還需要修改該檔案,新增這個函式:
dpdk_2.0 {
global:
__rte_panic;
devargs_list;
rte_log;
rte_test_log;
local: *;
重新編譯dpdk,會發現外部已經可以呼叫該函式了:
關於ld的--version-script編譯選項,網上已經有很多資料,這裡不再複述。
但這個需要手動加,多的時候怎麼辦了??
C DataGridView控制項 動態新增新行
datagridview控制項在實際應用中非常實用,特別需要 顯示資料時。可以靜態繫結資料來源,這樣就自動為datagridview控制項新增相應的行。假如需要動態為datagridview控制項新增新行,方法有很多種,下面簡單介紹如何為datagridview控制項動態新增新行的兩種方法 方法一 ...
C DataGridView控制項 動態新增新行
datagridview控制項在實際應用中非常實用,特別需要 顯示資料時。可以靜態繫結資料來源,這樣就自動為datagridview控制項新增相應的行。假如需要動態為datagridview控制項新增新行,方法有很多種,下面簡單介紹如何為datagridview控制項動態新增新行的兩種方法 方法一 ...
為控制項動態新增Style
原文 為控制項動態新增style 此文可解決 重寫控制項時,給控制項加入子控制項或父控制項的樣式切換問題。很靈活的可以根據不同內容顯示不同樣式 子控制項作用在 datatemplate x key colmunheader1 dockpanel background transparent cont...