程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
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