abi

    0熱度

    1回答

    我不擅長彙編語言。我正試圖調用一個函數foo,它需要10個浮點參數。在前八個之後,使用xmm0-xmm7寄存器,將參數壓入堆棧。除了最後兩個浮點值之外,我得到了幾乎正確的結果,這是我放入堆棧的那些值。 我認爲我的錯誤是我如何調用push,並與值保持一致。雖然我不確定,但我一直無法找出解決方案。我認爲這將是一個相當簡單的修復。 下面是一個例子一塊的什麼,我想實現代碼: #include <iostr

    0熱度

    2回答

    This SO post: Is Visual-C++-2017 binary compatible with VC++-2015?很明顯地說VS 2016與VS 2015是二進制兼容的,它甚至看起來像官方位置。 我的問題是,在過去,我清楚地記得運行到鏈接器錯誤(我不記得具體的一組錯誤),每次我試圖鏈接在一個靜態庫編譯了不同版本的MSVC轉換爲使用MSVC的新版本構建的EXE。 然而,二進制(in

    0熱度

    2回答

    我用下面的Json一個問題: [ { constant: false, inputs: [Object], name: 'set', outputs: [], type: 'function' }, { constant: true, inputs: [], name: 'get', outputs: [Object],

    5熱度

    1回答

    序言 有一大塊的代碼,我目前無法分解成一個MCVE工作,所以我會盡我最好。 問題 我與編譯爲靜態庫,libfoo.a一個大型的項目。一個單獨的項目bar與該庫鏈接。 「攻擊」片段在libfoo如下: class Base { public: void foo(){} void bar(){} }; class Derived : private Base { publ

    2熱度

    1回答

    當我嘗試編譯C代碼,其中包括另一C頭我得到這個錯誤以前聲明: x86_64-uefi/../../libk/string.h:9:10: error: function declared 'ms_abi' here was previously declared without calling convention KABI int memcmp(const void *d1, co

    -1熱度

    1回答

    我有一個關於使用NDK本機庫訪問的小疑問。 是否可以使用JNI訪問庫中的本地函數?我有一個完全建立在C++上的庫,是否可以加載該外部庫並編寫JNI與庫中的函數進行通信? 如果無法將該JNI class嵌入庫中並與Android活動進行通信?

    0熱度

    1回答

    我安裝了Qt 5.9.1,並在安裝過程中選擇了Android x86。 Qt Creator IDE會自動檢測「Android for x86」-Kit,但是當我嘗試將我的程序部署到智能手機時,Qt Creator會指出手機具有不兼容的ABI。 我擡頭看看手機,發現我需要ABI arm64-v8a,armeabi-v7a或armeabi。我使用Android SDK爲目標Android版本安裝了這

    1熱度

    1回答

    ABI-合規性檢查是一個Perl程序,可以運行在Linux檢查庫的ABI(https://lvc.github.io/abi-compliance-checker/) 該工具有一個-extended選項,這裏是什麼手冊說一下吧: 如果你的庫A應該被其他庫B使用,並且你想控制B的ABI,那麼你應該啓用這個選項。該工具將檢查所有數據類型的變化,即使它們未被庫A中的任何函數使用。此類數據類型不是A庫AB

    1熱度

    1回答

    假設我們有一個C(或C++)具有以下簽名功能: void foo(int64_t a, double b, int64_t c, double d); 當在Linux,Mac,或者使用System V的ABI(x86_64的)任何OS編譯,a和c獲得通過的rdi和rsi寄存器,b和d通過xmm0和xmm1。好的,這沒什麼不妥。但是,我在Windows(x86_64)中也是這樣做的,它看起來像跳

    1熱度

    1回答

    我一直在閱讀本節的一段時間,但似乎無法弄清楚。我在AMD64 ABI草案0.99.6,第18頁,部分3.32 Parameter Passing和以下文本: __m256類型的參數被拆分爲四個八字節塊。最不重要的屬於SSE類,所有其他屬於SSEUP類。 我很困惑,因爲它聽起來像我使用三個SSEUP寄存器和只有一個SSE,但似乎浪費了與SSEUP相關的其他兩個SSE寄存器。我誤讀了嗎?我可能甚至不會