name-mangling

    0熱度

    1回答

    設置斷點 我試圖以編程方式運行JDB。與任何理智的調試器不同,JDB使用類名稱而不是源文件名引用源代碼。我假設它涉及具有存儲在多個.class文件,而不是單個文件字節碼(你所期望的編譯與-g標誌產生一些參考源文件,但讓事情容易是不是Java的方式.. 。) 當加多寶指的是類我通常可以做一些字符串操作,並期待在源文件名找出哪些源文件聲明相關的類。當我需要爲斷點提供一個類名時,我可以讀取該文件以獲取包

    2熱度

    3回答

    我有一個頭文件,我想從.c和.cpp文件中包含。 所以我知道名字改編和extern「C」如此... #ifdef __cplusplus extern "C" { int isPrime(int64_t p); } #endif 但是當我包括這在.c文件也沒有看到因爲#ifdef __cplusplus 功能 所以後來我最終作出2份: #ifdef __cplusplus

    1熱度

    2回答

    爲了避免與C++代碼名稱混淆的問題,我在頭文件中使用了extern「C」。但是,當我使用Borland C++ IDE構建我的dll文件時,問題仍然存在「」。 以下是我的示例代碼。 別人。H文件 #define H_EXPORT WINAPI #ifdef __cplusplus extern "C" { #endif long H_EXPORT R

    0熱度

    1回答

    我需要從大型C++項目中刪除未使用的函數。閱讀了一段時間後,我用這個鏈接:How can I know which parts in the code are never used? 我使用makefiles在RedHat上編譯。我加入到編譯器標誌: -Wall -Wconversion -ffunction截面-fdata截面 和鏈接標誌: -Wl,-rpath,--demangle, - GC

    4熱度

    1回答

    標題幾乎說明了一切。我知道我可以使用和extern「C」塊來阻止混亂(儘管我不完全確定我應該在哪裏放置該塊),但是有沒有辦法可以在整個程序中禁用它?如果我這樣做,是否會使得從代碼編譯的庫更容易與luajit的FFI一起使用? 編輯:這是假定重複的問題是特定於DLL和Visual C++編譯器。我只是問一個普通的C++問題。

    0熱度

    1回答

    我旁邊的功能: namespace TEST { class TEST { int a; int b; }; } namespace UNION_TEST { union UNION_TEST { int a; int b; }; } union UNION_TEST_NEW { int

    2熱度

    3回答

    比方說,我有一個C++頭文件foo.hpp: namespace foo { int bar(int); } ,因爲它需要只能從命名空間foo訪問我不能使用extern "C"。 是否有一個便攜式(或相對便攜)的方式來聲明foo::bar在C文件foo.c,以便它將鏈接任何使用從C++ foo::bar? 我知道,有一個特定的編譯器在特定的系統,我可以找出如何foo::bar是錯位

    4熱度

    1回答

    我在python中創建了一個非常簡單的容器對象,它的一個函數需要創建一個臨時的空佔位符類,它除了告訴程序要刪除什麼之外什麼也不做。 class __cyclepass(object): "Null class as a placeholder for deleting items in a cycle.""" pass class Cycle(object):

    0熱度

    1回答

    我有一個導出以下重整符號論壇功能JS_DefineProperty一個SpiderMonkey的庫: _Z17JS_DefinePropertyP9JSContextP8JSObjectPKcN2JS5ValueEPFiS0_NS5_6HandleIS2_EENS7_I4jsidEENS5_13MutableHandleIS6_EEEPFiS0_S8_SA_iSC_Ej 當我嘗試編譯使用此功能

    3熱度

    1回答

    我在Cocoa框架中創建了一個我想要導出的函數。這個函數是在ObjectiveC++中實現的,C++的名字使我瘋狂。 我已經在extern「C」塊中聲明瞭這個函數,但沒有用。 這是我的框架頭文件: #import <Cocoa/Cocoa.h> extern "C"{ void display(NSString *text); } @interface Display : NS