我正在使用swig爲我的代碼生成一個C#封裝。但是,我還需要鏈接動態庫,這是一個Linux .so文件。是否有可能從C#做到這一點?在Windows上的C#中加載一個linux動態庫(.so)
謝謝
編輯:在Windows上使用.so文件。
我正在使用swig爲我的代碼生成一個C#封裝。但是,我還需要鏈接動態庫,這是一個Linux .so文件。是否有可能從C#做到這一點?在Windows上的C#中加載一個linux動態庫(.so)
謝謝
編輯:在Windows上使用.so文件。
沒有直接的方法來做到這一點。您需要創建所有本地代碼的原生Windows版本(本身以及所有依賴項)。
其他選項包括在Linux上編寫所有代碼(如果可能),包括C#部分(使用Mono)。或者創建某種客戶端/服務器設置,其中您的本機代碼保留在Linux上(作爲服務器應用程序),並且您的C#代碼將在Windows客戶端上。如果這對你來說是一個可行的解決方案,很難說沒有進一步的細節。
您的共享庫很可能已被編譯爲使用linux命令調用。
在windows應用程序中使用linux.so文件的唯一可能方法是使用cygwin編譯它(您的應用程序),但這樣會讓您的Windows應用程序成爲一個posix應用程序,這意味着它必須觸發cygwin每次運行時都會啓動。
在Win上鍊接.so肯定很奇怪。爲什麼你不能使用.dll? – CodesInChaos