如何檢查你的應用程式的ABI相容性

2021-08-11 04:14:20 字數 653 閱讀 3736

首先要獲得你share出去的lib的符號表:

$ find .

-name

'*.a'

|xargs nm -f posix|cut -f1

-d' '

|lang=c sort -u

> all_symbols

$ find .

-name

'*.so'

|xargs nm -f posix -d

|cut -f1

-d' '

|lang=c sort -u

>> all_symbols

$ grep '^_z' all_symbols | c++filt|sort > demangled_c++_symbols

然後分一下三種情況:

如果你的檔案是空的,恭喜你了,你的lib都是c寫的,不需要重新編譯,是abi相容的。

如果你的檔案中沒有包含std::這樣的字元,並且你的函式中沒有乙個的引數或返回值用到了標準類庫中的物件,你的庫有90%的就會是abi相容的。

如果你的檔案中有包含std::這樣的字元,或者你的函式中有乙個的引數或返回值用到了標準類庫中的物件,你的庫有90%的就會不是abi相容的。

如何為你的應用程式設定熱鍵?

啟動工程後,在你的工程中新增乙個標準模組,然後將下面的 貼上到模組的宣告段中。option explicit declare function sendmessage lib user32 alias sendmessagea byval hwnd as long,byval wmsg as lon...

經驗 應用程式發布失敗時的檢查

這兩天遇到乙個問題,乙個使用mysql資料庫的應用程式開發完成後,發布到測試伺服器執行正常,但是發布到另一台新伺服器上時,出現各種詭異問題,折騰大半天,終於搞定。遇到問題不能急,根據錯誤現象和日誌冷靜分析。既然在本地和別的伺服器上發布,都沒有問題,就不會是程式 問題,可以確定是伺服器環境有問題。大概...

快速打包你的應用程式 Inno Setup

做一件事我們總期望能夠快速的看到成效.當你的windows程式在經常變更時 同時又要把這些變更以安裝包形式打包給使用者.這就需要乙個簡單 高效 快速的打包應用程式工具 inno setup.對於打包乙個簡單的windows程式 inno setup打包級別正好合適相當.當我們做好乙個winform程...