1. linux下的so,o,lo,a,la文件有什麼區別
o: 編譯的目標文件
a: 靜態庫,其實就是把若干o文件打了個包
so: 動態鏈接庫(共享庫)
lo: 使用libtool編譯出的目標文件,其實就是在o文件中添加了一些信息
la: 使用libtool編譯出的庫文件,其實是個文本文件,記錄同名動態庫和靜態庫的相關信息
2. 嵌入式Linux開發中的文件I/O是什麼
嵌入式linux開發中的文件I/O就是對外設進行文件抽象,也就是認為一切外部設備都是文件,所有對外設的訪問都通過文件方式。多任務就是用一個CPU執行多個任務,這個任務叫做進程或線程。
I/O輸入/輸出(Input/Output),分為IO設備和IO介面兩個部分。
在POSIX兼容的系統上,例如Linux系統,I/O操作可以有多種方式,比如DIO(Direct I/O),AIO(Asynchronous I/O 非同步I/O),Memory-Mapped I/O(內存映設I/O)等,不同的I/O方式有不同的方式和性能,在不同的應用中可以按情況選擇不同的I/O方式。
輸入輸出I/O流可以看成對位元組或者包裝後的位元組的讀取就是拿出來放進去雙路切換;實現聯動控制系統的弱電線路與被控設備的強電線路之間的轉接、隔離,以防止強電竄入系統,保障系統的安全;
3. linux o 文件不是ELF文件 那個怎麼匯編
首先.o文件目標文件,也是ELF,.o就是匯編生成的,但是二進制文件不一定可執行
用.o生成可執行文件不叫匯編,叫鏈接,.o與運行所需的庫進行鏈接最終生成可執行文件或者庫。
操作的話就用gcc就好了,不同的參數執行不同的功能,比如說-o,-shared等,網上資料很多,用好gcc或者g++工具就ok
4. c語言 linux .o文件 不是ELF格式的 那這是什麼文件
.o文件是編譯過程中的一個中間文件
一次完整的編譯,可以分為編譯和鏈接兩個階段
編譯就是.c生成.o,一般用gcc
鏈接就是.o生成elf,一般用ld
不過用gcc也可以完成鏈接,gcc會識別文件擴展名調用ld的
更細分,還有cpp的預編譯,as的匯編編譯
cpp gcc as ld這個是完整的一次編譯過程
5. linux下的so,o,lo,a,la文件有什麼區別
它們的具體區別並不算太大,只是鏈接後的不同,具體區別如下:
6. linux下 為什麼要生成.o文件 .o文件和.c文件還有生成的可執行文件有啥區別啊
linux下.c只是簡單的文本文件,.o是編譯之後的二進制文件,操作方法如下;
1、首先在電腦中打開linux,然後安裝gcc g++編譯工具。
7. linux 使用.o文件
gcc foo.c -o foo.o表示將foo.c文件進行編譯、鏈接,產生foo.o的可執行文件。linux下沒有後綴一說。gcc foo.c命令直接產生a.out可執行文件,而「-o foo.o」這個參數用於將a.out文件賦一個你想要的文件名。此命令已經包含編譯、鏈接的過程,直接生成可執行文件了(Windows下就是.exe文件)輸入以下命令來查看文件格式:# file foo.ofoo.o: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
8. 在Linux中 *.o 是什麼東西
obj文件。不過Linux中並不以後綴名來區分文件的。也就是說你一個文本文檔一樣可以命名為xx.o
9. linux系統中 「.o」文件一般是什麼語言寫的
.o是目標二進制文件,一般來說就是一堆指令碼組成的文件,他本身有已重定位和未重定位之分,一般採用的是elf文件格式(建議可以參考elf文件的說明)。可以通過gcc工具鏈中的objmp工具(如果是ppc的使用objmpppc.exe -S 目標.o、如果是mips的使用objmpmips.exe 目標.o)
10. linux中的.lo是什麼文件
o: 編譯的目標文件
a: 靜態庫,其實就是把若干o文件打了個包
so: 動態鏈接庫(共享庫)
lo: 使用libtool編譯出的目標文件,其實就是在o文件中添加了一些信息
la: 使用libtool編譯出的庫文件,其實是個文本文件,記錄同名動態庫和靜態庫的相關信息