swig包裝lua重定義問題

2021-08-07 13:14:13 字數 437 閱讀 3434

在用swig封裝lua時,會遇到函式***_set函式或者***_get函式重定義的錯誤,究其原因,是因為swig為每個結構體新增乙個get或者set函式,用來訪問結構體成員。

如struct a

int _a;

swig會生成乙個名為_wrap_a_a_get的函式來訪問變數_a;

如果你剛好自己定義了乙個函式a_a_get函式,swig也會為這個函式生成乙個名為_wrap_a_a_get的函式,於是就出現了函式重名。

如果是c庫,就會報函式重定義的錯誤。

解決方案有兩個:

1.用%rename來把函式重新命名,如果衝突多的話這個工作量有點多;

2.用typedef把原來的名稱替換,注意typedef a aa和

typedef struct a

int _a;

}aa;

是不同的。

VC重定義問題

錯誤 1 e program files windows mobile 6 sdk pocketpc include armv4i winsock2.h 554 warning c4005 af max 巨集重定義 1 e program files windows mobile 6 sdk poc...

重定義問題的解釋

曾經多次在寫程式時遇到這個問題,每次遇到這個問題就積累一下 首先這類問題的原因在於鏈結的時候出錯,vs在編譯的過程中,專案中所有的cpp都會生成乙個對應的obj檔案,也就是乙個cpp檔案會生成乙個.obj的可重定位目標檔案,和linux中用命令g c cpp一樣,得到cpp檔案的單獨的二進位制檔案,...

布局重定義父部件問題

將乙個元件加入到乙個布局中時,qt會自動設定這個元件的父元件。這一點qt官方文件中有詳細的描述。粗淺翻譯如下,原文在此。當你使用layout時,就不需要在建立子元件時指定父元件了。qt的layout會自動的為子元件重新定義父元件 使用qwidget setparent 父元件即為安裝了layout的...