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

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 16804 | 回復(fù): 3
打印 上一主題 下一主題

[SCO UNIX] 在 SCO 系統(tǒng)的 CC 編譯器上強(qiáng)制使用靜態(tài)鏈接庫或者是動(dòng)態(tài)鏈接庫。 [復(fù)制鏈接]

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-11-26 10:10 |只看該作者 |倒序?yàn)g覽
實(shí)驗(yàn)如下:

同時(shí)編寫三個(gè)源碼文件

hello.c
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>

  4. int main ( void )
  5. {
  6.         hello1();
  7.         hello2();
  8.         return 0;
  9. }
復(fù)制代碼
hello1.c
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. void hello1()
  4. {
  5.        printf("hello , i am hello1\n");
  6.        return;
  7. }
復(fù)制代碼
hello2.c
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. void hello2()
  4. {
  5.        printf("hello , i am hello2\n");
  6.        return;
  7. }
復(fù)制代碼
先將 hello1.c 和 hello2.c 編譯成動(dòng)態(tài)鏈接庫 libhello.so
再將 hello1.c 和 hello2.c 編譯成靜態(tài)鏈接庫 libhello.a

如何編譯成動(dòng)態(tài)庫和靜態(tài)庫,請(qǐng)搜索論壇 sco 版塊,記得 sunlan 老大曾發(fā)過一個(gè)帖子,不再重復(fù)敘述。

下面是關(guān)鍵的一步。

我們首先看看:

cc -o hello hello.o -L. -lhello

編譯會(huì)生成一個(gè) hello 的可執(zhí)行文件,我們執(zhí)行一下看看,咦,咋提示找不到動(dòng)態(tài)鏈接庫 libhello.so ?

進(jìn)行如下操作:

LD_LIBRARY_PATH=${LIBRARY_PATH}:/usr/work/src/test/
export LD_LIBRARY_PATH

再執(zhí)行一下看看? ./hello

OK , 程序順利的打出兩行。

由此可見,前面的編譯操作鏈接的是動(dòng)態(tài)鏈接庫 libhello.so

我們?cè)賮韴?zhí)行編譯操作
cc -dn -o hello hello.o -L. -lhello
編譯同樣會(huì)生成一個(gè) hello 的可執(zhí)行文件。

清除 LD_LIBRARY_PATH 環(huán)境變量
unset LD_LIBRARY_PATH

set 一下看看,我們發(fā)現(xiàn)環(huán)境變量 LD_LIBRARY_PATH 已經(jīng)被清除了。

再次執(zhí)行一下看看 ./hello
程序順利打出兩行信息。

總結(jié):
在默認(rèn)情況下,cc 編譯成可執(zhí)行文件的時(shí)候,如果在 -L 指向的路徑下同時(shí)存在動(dòng)態(tài)鏈接庫和靜態(tài)鏈接庫,系統(tǒng)默認(rèn)鏈接的是動(dòng)態(tài)鏈接庫。
cc -o hello hello.o -L. -lhello 相當(dāng)于是 cc -dy -o hello hello.o -L. -lhello

如果強(qiáng)制編譯器鏈接靜態(tài)庫,應(yīng)使用 -dn 的參數(shù)
cc -dn -o hello hello.o -L. -lhello

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
2 [報(bào)告]
發(fā)表于 2011-11-26 10:25 |只看該作者
順便說一下,如果是使用的 gcc 編譯器,那么對(duì)應(yīng)的編譯參數(shù)是

-shared 和 -static

切記,切記!

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2011-12-02 16:11 |只看該作者
另外還要注意-b參數(shù)。在默認(rèn)情況下,cc生成的目標(biāo)代碼是coff格式的,加-belf時(shí),生成的目標(biāo)代碼是elf格式的。而gcc缺省生成的是elf格式的。兩種格式不能兼容

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
4 [報(bào)告]
發(fā)表于 2011-12-03 00:51 |只看該作者
另外還要注意-b參數(shù)。在默認(rèn)情況下,cc生成的目標(biāo)代碼是coff格式的,加-belf時(shí),生成的目標(biāo)代碼是elf格式的 ...
sunlan 發(fā)表于 2011-12-02 16:11



    嗯,這個(gè)還真實(shí)忽略了。

謝謝補(bǔ)充。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP