亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: freebsd下可以編譯的時候連接一個linux下編譯出來的庫么?在線等候。。 [打印本頁]

作者: hmilymb    時間: 2009-07-16 10:04
標題: freebsd下可以編譯的時候連接一個linux下編譯出來的庫么?在線等候。。
有個問題請問大家。

freebsd下可以編譯的時候調(diào)用一個linux下編譯出來的庫么?

我知道freebsd可以運行的時候調(diào)用linux下的動態(tài)庫。
但是不知道編譯的時候嗲用linux下的庫可以么?

比如
libaxx.so libbxx.a是linux編譯出來的,
現(xiàn)在我在freebsd 下編譯
g++ -o a a.cpp -laxx -lbxx
作者: phoenixson    時間: 2009-07-16 11:47
原帖由 hmilymb 于 2009-7-16 10:04 發(fā)表
有個問題請問大家。

freebsd下可以編譯的時候調(diào)用一個linux下編譯出來的庫么?

我知道freebsd可以運行的時候調(diào)用linux下的動態(tài)庫。
但是不知道編譯的時候嗲用linux下的庫可以么?

比如
libaxx.so li ...

保證都是elf32,或者同是elf64的,應(yīng)該是可以的,所以說從開源的linux port到freebsd這個過程并算太不復雜
作者: hmilymb    時間: 2009-07-16 14:23
謝謝樓上。。

我覺得是不是屬于交叉編譯范疇了,freebsd代碼中調(diào)用一個linux人家的庫,看來是不可以了,除非都是都是編譯成linux下運行的,然后再到freebsd模擬linux環(huán)境。。
作者: pagx    時間: 2009-07-16 16:12
這個要分情況討論了。
1、ARCH要相同。
2、不能使用系統(tǒng)調(diào)用。
3、對于.o文件,需要連接系統(tǒng)提供的函數(shù),要求數(shù)據(jù)結(jié)構(gòu)一致。

同樣是386下, 純粹加密解密,沒有使用系統(tǒng)調(diào)用的話,那么生成的.o甚至.so是可以用的。
但是估計會存在難以發(fā)現(xiàn)的問題。

符合這些條件的就可以互用了。就像mplayer可以調(diào)用win32的DLL一樣。
作者: phoenixson    時間: 2009-07-16 17:30
原帖由 pagx 于 2009-7-16 16:12 發(fā)表
這個要分情況討論了。
1、ARCH要相同。
2、不能使用系統(tǒng)調(diào)用。
3、對于.o文件,需要連接系統(tǒng)提供的函數(shù),要求數(shù)據(jù)結(jié)構(gòu)一致。

同樣是386下, 純粹加密解密,沒有使用系統(tǒng)調(diào)用的話,那么生成的.o甚至.so是可 ...

一般來說,不直接和內(nèi)核打交到的,也就是和內(nèi)核無關(guān)的,這個是個前提
作者: 挪幾步呀    時間: 2009-07-19 23:07
路過 頂了。。。
作者: langue    時間: 2009-07-20 08:45
要么全部編譯成 Linux 的二進制,用管道來交互?
作者: phoenixson    時間: 2009-07-20 10:24
原帖由 langue 于 2009-7-20 08:45 發(fā)表
要么全部編譯成 Linux 的二進制,用管道來交互?

格式上來說,都編譯成elf的首先,他們之間的不同,僅僅是他們對庫和內(nèi)核的依賴不同,尤其是內(nèi)核




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2