الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة: Cannot open include file

مغلق
بدأه Xacker في 7 أغسطس 2007 · 10 رد · 1,692 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هذه المشكلة واجهتها أكثر من مرة ولأني لا استخدم C compiler الا عندما اريد تجميع شفرة جاهزة فلا أعلم ما السبب في ظهورها

بالبحث في Google ارى البعض يقول الملف المطلوب على نظام unix وهذا لا اتصوره صحيح

البعض الاخر يقول يجب وضع المسار الكامل الى مجلد include وقد تحققت منه وهو صحيح

رسالة الخطأ عند الربط:

اقتباس
Cannot open include file: 'unistd.h': No such file or directory

وهل الملفات التالية جميعها لـ windows ام انها لا تتبع له واحتاج الى تجميع الملف على نظام آخر

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>

ما الحل؟

جزيتم الخير

تم تعديل هذه المشاركة بواسطة Xacker في 7 أغسطس 2007 في 15:36

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#2

الاخ العزيز Xacker ..

حسب ما استطيع ان اقوله لك ... هو اكثر من سبب وإن شاء الله سنستعرضها الان ..

اولا .. هل الرسالة

اقتباس
Cannot open include file: 'unistd.h': No such file or directory

ضهرت لك فقط لهذه المكتبة ؟؟؟ اذا نعم فيجب عليك تحميل المكتبة من الانترنيت ..

ثانيا بالنسبة للمكتبات ..

انت على اي كومبايلر تعمل ..؟؟

اغلب المكتبات التي موجوده في البرنامج الذي وضعته انت غير مضمنة في اغلب الكومبايلرات ويجب عليك تحميلها

يمكن ان تفيدك هذه الروابط

http://freebsd.active-venture.com/FreeBSD-.../sys/index.html

وايضا ..

http://www.opengroup.org/pubs/online/7908799/headix.html

يمكنك البحث عن اي مكتبة ومن ثم وضعها في مجلد الinclude لكي يتم العمل معها ..

تحياتي واذا كان فهمي غلط للمشكلة ارجو ان تكتب ذلك لكي استطيع المساعده ..

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#3

جزيت الخير أخي

حلت مشكلة ملفات ال headers

لكن ظهرت مشكلة لا اعلم سببها عند محاولة الربط (استخدم MSVS C++)

في مكتبة netdb.h

والخطأ

error C2146: syntax error : missing ';' before identifier '__THROW'
fatal error C1004: unexpected end of file found

يشير الى

extern void endservent (void) __THROW;
extern void setservent(int stayopen) __THROW;

فما رأيك السبب؟ :unsure:

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#4

المشكله اخي العزيز اتوقعها هي التالية ..

ان المكتبة netdb .. اتوقع انها لاتعمل على التربو C++ ..

مرة كنت اترجم ثغرة في السي ++ .. فقمت بتحميل كافة المكتبات اغلب المكتبات الجديدة عملت الا هذه المكتبة حسب ما اتذكر نفس المشكله .. لذلك جرب شيئا وهو قم بتغيير الكومبايلر الذي انت الان تعمل عليه يمكن تنجح الطريقة لانني لم اقم بمعالجة هذه المشكله في وقتها ..

هذا رايي واذا كان هنالك الحل الاصح موجود اتمنى ممن يعرفه يفيدنا لكي لا تواجهنا مثل هذه المشكلة مستقبلا ..

تحياتي العطرة وانتظر الرد

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#5

شكرا أخي

هل هناك compiler معين تنصحني به لأنه ما شاء الله الـ compilers كثيرة لـ C

:P

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#6

أخوي Xacker حياك الله

إذا كنت من محبي لنكس فيوجد الgcc المترجم المشهور على نظام ويندوز على هذا الرابط.

أو مترجم ++Visual C أو مترجم ++Borland C .لكن مشكلتهم أن كل واحد منهم يتبع طريقه مختلفة في إنشاء البرامج .

#7

هلا أخي

مشكلتي اني بحاجة الى شئ لا يرغمني على الحصول على كل هذه المكتبات وفي النهاية لا يعمل غالب الـ exploits مكتوبة بصورة تحتاج الى ملف مكتوب بالاصل على لينوكس وهذا ما يسبب لي تعباً في ربطه وتحويله الى تنفيذي في معظم الاوقات. اعلم عن GCC لكني لم استخدمه من قبل والمشكلة ان تنصيبه او استخدامه لوحده بحاجة الى manual

تم تعديل هذه المشاركة بواسطة Xacker في 8 أغسطس 2007 في 08:04

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#8

والله يا اخ Xacker ..

في الحقيقة لا اتوقع ان تجد كومبايلر يحتوي على كل المكتبات لانه تلك المكتبات ليست قياسية ... فعليك ان تقوم انت بتحميلها ..

هل تمتلك الديف سي ++ dev c++ جربه وانا اتوقع ان يقوم بالمهمه ..

بالمناسبة هذه لثالث مشاركه لي في هذا الموضوع وانا اسالك ما هو الكومبايلر الذي انت تعمل عليه ..؟؟؟

طبعا هناك ملاحظة قرأتها يوم امس وانا اتجول في الانترنيت وابحص لك عن الحل .. وهي ان احدى المكتبات التي وضعتها انت ويمكن ان تكون هناك اخرى هي من مكتبات اليونكس ..

لذلك للتجربة لا غير قم بالعمل على حاسبة منصب عليها احد انظمة اليونكس ...

تحياتي وإن شاء الله انا في طور البحث لك ..وانتظر ردك ..

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#9

Assalamou alaykom

Sorry I'm not using my personal PC and I'm at work so I have to give just a fast answer, probably later and I will explain well.

Xacker

Firstly you should know that the majority of the include files which you are trying to integrate are UNIX header files and you will face a problem of compatibility

Secondly, for more information you can refer to this link to know how to include external header files to your project using both Visual studio and Dev C++

/index.php?showtopic=131779

Sorry again for writing in English

#10

لم أجب على رد MR.SD بعد؟ غريبة كنت أعتقد أني أجبت

أنا استخدم MSVS v6.0 اعتقد اني ذكرت هذا في احد الردود

شكرا لكما على الرد, سأنظر في رد الأخ بن العيد رغم ان موضوع الـ include اعتقد حللته لكن نحاول في نسخة الـ 2003/2005 لا بأس

السلام عليكم

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#11

معظمها يتبع لمكتبة سي في لينوكس GNU C Library

هذا الموضوع مغلق.

مواضيع مشابهة