2015-05-13 28 views
0

我想寫這樣的代碼:(未完成)Ubuntu的 - 沒有這樣的文件或目錄的#include <string>

#include"header.h" 
#include<stdlib> 
#include<stdio.h> 
#include<libpq-fe.h> 
#include<string> 

int main(){ 
    std::string pguser = "XYZ"; 
    std::string pgpassword = "XYZ"; 
    std::string pghost="XYZ"; 
    std::string pgdbname = "XYZ"; 
    int i; 
    PGconn *conn; 
    PGresult *res; 

    connstr = "user="; 
    connstr += pguser; 
    connstr +="password="; 
    connstr += pgpassword; 
    connstr +="host="; 
    connstr += pghost; 
    connstr +="dbname="; 
    connstr += pgdbname; 

    //DB-Login 
    conn = db_login(const string &user, const string &password, const string  &host, const string &dbname); 
    if(conn == true){ 
    printf("LOGIN SUCCESFULLY"); 
    }else{ 
    printf("LOGIN FAILED"); 
    } 

    return 0; 

    } 

我Header.h

#ifndef DB_H 
#define DB_H 

#include <string> 

using namespace std; 

int db_login(const string &user, const string &password, const string &host, const string &dbname); 
#endif 

我只是想測試它(sudo gcc main.c的頭文件-o測試) 我得到的結果是:沒有這樣的文件或目錄#包括字符串

我搜索了一個解決方案,並嘗試了,但我得到同樣的錯誤。 (也安裝 - >命令和apt-get安裝建立必要的 )

請幫助

回答

3

你正在編寫C++代碼,而是試圖將其編譯爲C - gcc是C語言的前端,所以改爲使用g++。同時將您的源文件從.c重命名爲.cpp以獲得make(1)的自動支持。

1

#include<string>是C++頭。您在.c文件中使用C++代碼,這是不正確的。可能您應該將main.c重命名爲main.cpp,並使用g ++代替gcc

相關問題