פורסם: 03/06/2015 - 00:02
נושא ההודעה: iostream באובונטו 12.04
|
אני מקבל את הפלט הבא:
קוד: | printf.c:1:20: fatal error: iostream: No such file or directory
compilation terminated.
|
התקנתי את libpstreams-dev 0.7.0-2ubuntu1 אבל עדיין הפלט חוזר
ולדאבוני אני לא יכול להשתמש ב-cout ו-cin
עזרה?
|
|
חזרה לתוכן הדיון |
פורסם: 03/06/2015 - 02:02
נושא ההודעה:
|
|
|
חזרה לתוכן הדיון |
פורסם: 03/06/2015 - 07:11
נושא ההודעה:
|
שים לב לסיומת של הקובץ שלך, אתה מקמפל קוד C ולא C++, לכן אתה מקבל את השגיאה.
כמו כן - תן קוד מקוצר שמממש את הבעייה, ואת שורת הקומפילציה במלואה.
|
|
חזרה לתוכן הדיון |
פורסם: 05/06/2015 - 11:23
נושא ההודעה:
|
אתה צריך את החבילה g++:
קוד: | sudo apt-get install g++ |
ואז אתה יכול לעשות:
וכפי שכתב elcuco רצוי שתשנה את הסיומת של הקובץ לסיומת של C++. החבילות libpstreams ו- libcxxtools שהוזכרו כאן לא קשורות בכלל למה שאתה מנסה לעשות.
|
|
חזרה לתוכן הדיון |
פורסם: 06/06/2015 - 23:39
נושא ההודעה: פרטים נוספים
|
שם הקובץ:
פקודת הקומפילציה:
קוד: | gcc -std=c99 -o prinf printf.c |
תוכן הקובץ:
קוד: | #include <iostream>
using namespace std;
6
5
int divide (int a, int b=2)
{
int r;
r=a/b;
return (r);
}
int main ()
{
cout << divide (12);
cout << endl;
cout << divide (20,4);
return 0;
} |
הפלט: קוד: |
printf.c:1:20: fatal error: iostream: No such file or directory
compilation terminated. |
כשאני מוסיף ++ בשם הקובץ אני מקבל את השגיאה הבאה :
קוד: | gcc: error trying to exec 'cc1plus': execvp: No such file or directory |
|
|
חזרה לתוכן הדיון |
פורסם: 06/06/2015 - 23:58
נושא ההודעה:
|
אם אתה כותב קוד C++ (ואתה כותב כזה, כי אין iostream, cout, cin ב-C) אז -
1. סיומת הקובץ צריכה להיות cpp לא c.
2. הקומפיילר צריך להיות g++ לא gcc.
3. אי אפשר להשתמש באופציה std=c99 שתקפה רק ל-c ולא ל-c++.
|
|
חזרה לתוכן הדיון |
פורסם: 07/06/2015 - 00:26
נושא ההודעה:
|
הסיומת לא מחוייבת:
קוד: |
echo -e '#include <iostream>\nint main() {std::cout << "Hello" << std::endl; return 0; }' >test.c
g++ -Wall -o test test.c && ./test
# Prints "Hello"
|
אבל מקובל שהסיומות cc, C, cxx ו־cpp מעידות על קובץ C++.
|
|
חזרה לתוכן הדיון |
פורסם: 07/06/2015 - 01:08
נושא ההודעה:
|
צפריר - צודק, אבל רצוי מאוד!
טכנית, בלינוקס שום דבר (נדמה לי) לא מסתמך על סיומת, אבל עדיין מומלץ להשתמש בסיומת נכונה.
|
|
חזרה לתוכן הדיון |
פורסם: 07/06/2015 - 08:18
נושא ההודעה:
|
ומה קורה שאתה רושם ?
קוד: |
g++ -o prinf printf.c
|
|
|
חזרה לתוכן הדיון |
פורסם: 07/06/2015 - 08:20
נושא ההודעה:
|
אם יש בעיה עם השם תעשה rename
mov print.c print.cpp
g++ -o print print.cpp
|
|
חזרה לתוכן הדיון |
פורסם: 07/06/2015 - 09:01
נושא ההודעה:
|
Anonymous : | אם יש בעיה עם השם תעשה rename
mov print.c print.cpp
g++ -o print print.cpp |
הפקודה היא mv לא mov.
|
|
חזרה לתוכן הדיון |
פורסם: 07/06/2015 - 10:57
נושא ההודעה:
|
Anonymous : | צפריר - צודק, אבל רצוי מאוד!
טכנית, בלינוקס שום דבר (נדמה לי) לא מסתמך על סיומת, אבל עדיין מומלץ להשתמש בסיומת נכונה. |
דוגמה נגדית לטענה הראשונה:
קוד: |
$ echo -e '#include <iostream>\nint main() {std::cout << "Hello" << std::endl; return 0; }' >test.c; make test && ./test
cc test.c -o test
test.c:1:20: fatal error: iostream: No such file or directory
#include <iostream>
^
compilation terminated.
<builtin>: recipe for target 'test' failed
make: *** [test] Error 1
|
|
|
חזרה לתוכן הדיון |
פורסם: 07/06/2015 - 11:03
נושא ההודעה:
|
יפה מאוד - סתרת את שנינו באבחת־מעטפת יחידה!
תמיד כיף להחכים בנושאים כאלו.
|
|
חזרה לתוכן הדיון |
|