作者b60413 (None)
看板C_and_CPP
標題[問題] linux complier c++ string
時間Thu Mar 26 15:40:52 2009
今天我嘗試在linux上編譯自己寫的一小段程式碼
結果編譯一直錯誤並且顯示"錯誤:「string」 沒有命名一個類型"
我查了google以後 他說可能是沒有include string.h這個標頭
於是我又去修改我的程式碼並且加入string.h這個標頭檔
但是還是一直無法使用....不知道到底是哪裡有寫錯....
還請版友幫忙糾正一下 謝謝
//A.cpp 這是一個測試用的class
#include <iostream>
#include <string>
#include "A.h"
using namespace std;
A::A()
{
cout<<"call constructor"<<endl;
a="aa";
}
//main.cpp 這是主要的程式碼片段
#include <iostream>
#include <string>
#include "A.h"
using namespace std;
int main()
{
A b;
return 0;
}
//A.h 測試用class的定義
#ifndef A_H
#define A_H
class A
{
public:
string str;
A();
};
#endif
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.195.217.195
※ b60413:轉錄至看板 Linux 03/26 15:46
1F:推 Bencrie:你怎麼編譯你的程式的 ?? 03/26 15:54
2F:→ b60413:g++ A.cpp main.cpp -o main 03/26 15:57
3F:推 Ebergies:你的問題在 A.h 而不在這兩個 cpp 03/26 16:10
修文補上A.h
※ 編輯: b60413 來自: 123.195.217.195 (03/26 16:19)
4F:→ tinlans:A.h 明顯有問題啊,string 是什麼東西根本沒描述出來。 03/26 16:40
5F:→ b60413:恩...了解 我在A.h中也加了兩行 03/26 16:47
6F:→ b60413:#include <iostream> 03/26 16:47
7F:→ b60413:using namespace std; 03/26 16:47
8F:→ b60413:這樣下去編譯是成功的 但感覺寫法上好像有點多餘?? 03/26 16:48
9F:→ psboy:#include <string> ?不是#include <string.h>嗎? ._.? 03/26 17:00
10F:→ psboy:啊抱歉...沒注意到是c++ Or2 03/26 17:15
11F:推 littleshan:#include <string> 才是對的,string.h 是給 C 用的 03/26 17:17
12F:推 Bencrie:要說多餘的話,A.cpp跟main.cpp裡的#include<iostream> 03/26 18:08
13F:→ Bencrie:才是多餘的 orz 03/26 18:08