為DPDK eal動態庫新增新函式 ld不過的問題

2021-09-22 16:22:52 字數 812 閱讀 5942

最近對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...