程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 毛病:sem_union的存儲年夜小未知成績的處理辦法

毛病:sem_union的存儲年夜小未知成績的處理辦法

編輯:關於C++

毛病:sem_union的存儲年夜小未知成績的處理辦法。本站提示廣大學習愛好者:(毛病:sem_union的存儲年夜小未知成績的處理辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是毛病:sem_union的存儲年夜小未知成績的處理辦法正文


明天在編譯代碼的時刻提醒 毛病: ‘sem_union'的存儲年夜小未知

成績緣由:在新版2.6內核中關於union sem_union 這個結合體曾經被正文了,須要本身寫這個結合體.

處理計劃:在C文件中先界說:

union semun 
{
	int val;  
	struct semid_ds *buf; 
	unsigned short *array;
}sem_union;

隨後編譯時它就可以找到事後界說好的sem_union結合體了.

Linux下編譯時湧現的毛病及處理辦法

(1)因為是Linux老手,所以如今才開端接觸線程編程,照著GUN/Linux編程指南中的一個例子輸出編譯,成果湧現以下毛病:

undefined reference to 'pthread_create'

undefined reference to 'pthread_join'

成績緣由:

pthread 庫不是 Linux 體系默許的庫,銜接時須要應用靜態庫 libpthread.a,所以在應用pthread_create()創立線程,和挪用 pthread_atfork()函數樹立fork處置法式時,須要鏈接該庫。

成績處理:

在編譯中要加 -lpthread參數

gcc -o thread thread.c -lpthread

thread.c為你些的源文件,不要忘了加上頭文件#include<pthread.h>

(2)湧現正告:內建函數strlen不兼容的隱式聲明,內建函數exit不兼容的隱式聲明

成績緣由:由於函數strlen在string內,exit在stdlib內。在文件中沒有添加頭文件 string.h和stdlib

成績處理:在文件中添加頭文件 string.h和stdlib

(3)湧現毛病:sem_union的存儲年夜小未知

成績緣由:在新版2.6內核中關於union sem_union 這個結合體曾經被正文了,須要本身寫這個結合體

成績處理:在C文件中先界說

union semun {int val; struct semid_ds *buf; unsigned short *array;} sem_union;

隨後編譯時它就可以找到事後界說好的sem_union結合體了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved