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

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

Chinaunix

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

請(qǐng)教大家一個(gè)調(diào)用so動(dòng)態(tài)庫的問題 [復(fù)制鏈接]

論壇徽章:
1
技術(shù)圖書徽章
日期:2013-10-29 15:46:41
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-02-16 14:56 |只看該作者 |倒序?yàn)g覽
情況如下:
    我自己編寫了一個(gè)libtest.so,然后寫了一個(gè)簡(jiǎn)單的測(cè)試程序:
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <dlfcn.h>
  5. int main()
  6. {
  7. printf("-----for test begin-----\n");
  8.     unsigned long int handle = 2;
  9.     void *dp = dlopen("/lib/libtest.so", RTLD_LAZY);
  10.                
  11.     char *pszErr = dlerror();
  12.     if( !dp || pszErr )
  13.     {
  14. printf("Load libtest.so failed!\n");
  15.         return 1;
  16.     }

  17.     int (*File_Open)(unsigned long int*,int) = dlsym(dp, "File_Open");
  18.     int ret = File_Open(&handle,0);

  19. printf("ret = %d\n",ret);
  20. printf("handle = %d\n",handle);

  21.     dlclose(dp);

  22. printf("-----for test end-----\n");

  23.     return 0;
  24. }
復(fù)制代碼
gcc -o test test.c -ldl

生成test可執(zhí)行文件,下載到目標(biāo)板后運(yùn)行,打印-----for test end-----后出現(xiàn)segmentation fault,
注釋掉“dlclose(dp);”segmentation fault未出現(xiàn),個(gè)人感覺很奇怪,如果dlclose()調(diào)用引起的
segmentation fault那應(yīng)該不打印-----for test end-----啊,但注釋掉就沒問題了,搞不懂啊!

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2011-02-16 15:19 |只看該作者
檢查下open有沒有錯(cuò)?

論壇徽章:
1
技術(shù)圖書徽章
日期:2013-10-29 15:46:41
3 [報(bào)告]
發(fā)表于 2011-02-16 15:21 |只看該作者
難道我的glibc對(duì)dlclose支持的不夠好?
沒有遇到同樣問題的戰(zhàn)友?

論壇徽章:
1
技術(shù)圖書徽章
日期:2013-10-29 15:46:41
4 [報(bào)告]
發(fā)表于 2011-02-16 17:04 |只看該作者
回復(fù) 2# ww2000e


    dlopen沒有問題啦。
   在一些英文郵件列表中有看到相同問題,可惜沒看到解決方法,唉

論壇徽章:
3
CU大牛徽章
日期:2013-03-14 14:14:08CU大;照
日期:2013-03-14 14:14:26CU大牛徽章
日期:2013-03-14 14:14:29
5 [報(bào)告]
發(fā)表于 2011-02-17 19:06 |只看該作者
gcc -o test test.c -ldl

這樣編譯可以下載到目標(biāo)機(jī)上運(yùn)行嗎?
目標(biāo)機(jī)上的bin文件,.so文件都需要交叉編譯。

不過段錯(cuò)誤,一般是內(nèi)存越界之類,你可以現(xiàn)在pc上測(cè)試,測(cè)試OK后在移植到目標(biāo)板上運(yùn)行。

論壇徽章:
1
技術(shù)圖書徽章
日期:2013-10-29 15:46:41
6 [報(bào)告]
發(fā)表于 2011-02-18 09:29 |只看該作者
回復(fù) 5# liugang9931706


    寫錯(cuò)了,不是gcc,呵呵,關(guān)鍵是main函數(shù)執(zhí)行完才出現(xiàn)段錯(cuò)誤,我把main函數(shù)刪的只剩下dlopen和dlclose兩行也會(huì)段錯(cuò)誤,注釋掉dlclose就沒有了。
您需要登錄后才可以回帖 登錄 | 注冊(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