object-files

    0熱度

    1回答

    我希望能夠在不使用makefile的情況下編譯C++源文件。這裏是我的問題的原型......我有以下.cpp文件 // special libraries to include #include "acado.h" #include "auxiliary_functions.c" /* -------------------------- */ // Create objects for

    1熱度

    2回答

    我有兩個類實現(.cpp files) 他們都需要將其在header(.h)文件中實現的功能。這兩個.cpp文件都包含.h文件。編譯後,兩個.cpp文件成爲兩個.o文件。 連接兩個目標文件時,該功能是否定義了兩次? 可以#ifndef防止這種情況嗎? 我用#ifndef,但我得到了以下信息, ld: 1 duplicate symbol for architecture x86_64

    0熱度

    1回答

    public void save() throws IOException { File f = new File(path); if (!f.getParentFile().exists()) { f.getParentFile().mkdirs(); } FileOutputStream fout = new FileOu

    7熱度

    2回答

    我知道編譯時包含在可執行文件中的代碼可以來自對象文件(.o文件)和靜態鏈接庫(.lib/.a文件)。這兩者之間的區別在根本上和概念上是什麼?爲什麼「目標代碼」和「靜態鏈接庫」有不同的概念?每個人有什麼優點和缺點,爲什麼使用一個而不是另一個?靜態鏈接庫可以由目標文件創建,反之亦然,可以使用靜態鏈接庫創建目標文件?

    0熱度

    1回答

    在C++中,當將對象文件存檔到.a文件中時,它與平臺有關嗎? 例如我在x64平臺上用x64編譯器編譯,我將一堆CPP文件編譯成.o文件。使用AR.exe,我將它們歸檔到.a文件並分發。 .a文件是x32,x64還是可以互換的?或者是否依賴於使用.a文件的程序?

    1熱度

    1回答

    我有一個預編譯的目標文件,比如myObjectFile.o。在我的.pro文件我有這樣的代碼塊: mac { ... OBJECTS += myObjectFile.o } 這個偉大的工程與項目的其餘部分在目標文件中鏈接,但有一個致命的問題。如果我做一個乾淨的對象文件被刪除。而且由於它是預編譯的,所以當我嘗試重新構建時,我得到一個鏈接錯誤,直到我將該文件複製回我的項目目錄

    3熱度

    1回答

    我有一個應用程序本身和測試兩個單獨的項目的遊戲。我正在構建所有項目。這裏是我的項目結構的簡化版本: game game.pro app app.pro Entity.h Entity.cpp Entity.o moc_Entity.cpp moc_Entity.o tests laye

    3熱度

    1回答

    我目前正在從一些C源文件(我沒有,只有對象文件可用)生成ELF格式的對象文件。 詳細: 每symbol條目在Symbol Table在ELF文件中有正如我寫了一個小工具,它提取所有未定義的符號,我碰到這有指向保留的部分章節索引一些符號來了一個整數指向符號所屬的section header entry index的字段,迄今爲止這麼好... ELF規範定義了一堆保留節標題索引,值爲0(對於undef

    0熱度

    1回答

    基本上,我用objdump -D來卸載目標文件和ELF文件。我認爲兩者之間的主要區別在於。 我看到目標文件(單個段)中的指令的地址以開頭。因此,連續地址是,將偏移一定的值,可能取決於對應於該特定指令的操作碼的長度。 Disassembly of section .text: 00000000 <main>: 0: 8d 4c 24 04 lea 0x4(%esp),%ecx 4: 83

    7熱度

    1回答

    當我們編譯代碼時,會生成一個目標文件。從該目標文件中,在鏈接過程中生成可執行文件。 爲什麼我們需要一個目標文件?對象文件有什麼用途?難道不可能直接生成可執行文件嗎?畢竟,我們正在使用可執行文件來運行程序。