使用Cmake合併dll

2021-08-21 03:25:05 字數 887 閱讀 8655

之所以寫這篇部落格,是因為周五打包被坑了2個小時- -!

我剛進乙個新專案用的xlua,我之前用tolua,老大讓我維護xlua框架寫了些工具,然後又把xlua更新了,更新後在window上都正常,在ios上就編不過,我翻遍資料夾也找不到那個dll,並且發現在luadll裡面方法反射是沒有報錯,但是編譯卻出了bug,後來發現是之前離職的兄弟把乙個dll注入了xlua,dll,最後查了些文件,把問題定位到注入dll的問題

前提條件:

1.visual tudio有c++模組

4.借閱以下兩篇部落格

上圖是win10編譯cmake注入dll的截圖,建議shift加右鍵把bat檔案拖入,win10叫powershell,主要是為了看編譯的問題,和輸出路徑

這樣我們就完成了把protobuf庫注入到xlua.dll

使用的時候就可以 [csharp]**

const string luadll = "xlua";

[dllimport(luadll, callingconvention = callingconvention.cdecl)]

//對應pbc-lua53.c檔案__declspec(dllexport) int luaopen_protobuf_c(lua_state *l)函式

public static extern int luaopen_protobuf_c(system.intptr l);

[monopinvokecallback(typeof(xlua.luadll.lua_csfunction))]

public static int loadprotobuf(system.intptr l)

ILMerge合併多個DLL

如果你的專案要提供多個dll給別人用,那麼不妨讓你的dll合併為乙個,讓別人看起來簡潔,引用起來不會過於繁瑣。本篇比較少,但也算是比較實用吧。場景 c盤有2個dll,分別為 c a.dll c b.dll 結果 合併為c c.dll 具體操作 首先我的ilmerge安裝到啦c盤的路徑為 c prog...

ILMerge合併多個DLL

如果你的專案要提供多個dll給別人用,那麼不妨讓你的dll合併為乙個,讓別人看起來簡潔,引用起來不會過於繁瑣。本篇比較少,但也算是比較實用吧。場景 c盤有2個dll,分別為 c a.dll c b.dll 結果 合併為c c.dll 具體操作 首先我的ilmerge安裝到啦c盤的路徑為 c prog...

cmake使用範例

cmake作為一款跨平台的專案構建工具,其使用範圍已經越來越廣,本文以實際專案為例,展示乙個使用該編譯工具的模板。希望我們都能在這些高效的工具幫助下都享受程式設計的樂趣。project src libs modules includes build bin cmakelists 根目錄下cmakel...