2017-10-15 163 views
0

我是新來的c + +開發。 我想嘗試使用MySQL數據庫,但不明白它有什麼問題。這是我的代碼。CLion Cmake mysql.h missunderstanding

#include <iostream> 
    #include <mysql.h> 
    MYSQL *connection, mysql; 
    MYSQL_RES *result; 
    MYSQL_ROW row; 
    int query_state; 

    int main() { 
     mysql_init(&mysql); 
     //connection = mysql_real_connect(&mysql,"host","user", 
     //     "password","database",port,"unix_socket",clientflag); 
     connection = mysql_real_connect(&mysql,"localhost", 
             "root","qwer","cpp_data",3306,0,0); 
     if (connection == NULL) { 
      std::cout << mysql_error(&amp;mysql) << std::endl; 
      return 1; 
     } 

     query_state = mysql_query(connection, "select user_count()"); 
     if (query_state !=0) { 
      std::cout << mysql_error(connection) << std::endl; 
      return 1; 
     } 

     result = mysql_store_result(connection); 
     while ((row = mysql_fetch_row(result)) != NULL) { 
      std::cout << "Number of active users : " << row[0] << std::endl; 
     } 

     mysql_free_result(result); 
     mysql_close(connection); 

     return 0; 
    } 

當我跑我PROGRAMM它說C:\用戶\用戶\ CLionProjects \我-CPP訓練\ main.cpp中:9:19:致命錯誤:mysql.h中:沒有這樣的文件或目錄

我會提供我的CMakeList,還有一些我通過學習寫的源。那就是:

cmake_minimum_required(VERSION 3.8) 
project(my_cpp_training) 

set(CMAKE_CXX_STANDARD 11) 

LINK_DIRECTORIES(D:/Downloads/mysql-connector-c++-noinstall-1.1.9-winx64/include) 
include_directories ("D:/Downloads/mysql-connector-c++-noinstall-1.1.9-winx64/include") 

set(SOURCE_FILES main.cpp util/ContrainerUtils.cpp classes/Examples.cpp classes/Person.cpp classes/Person.h pointers/PointersArithmatic.cpp classes/Object.cpp classes/Object.h classes/Animal.cpp classes/Animal.h classes/Vector.cpp classes/Vector.h bussiness-layer/user.cpp util/Out.cpp util/Out.h classes/Container.cpp classes/Container.h classes/Vector_container.cpp classes/Vector_container.h util/PropertiesReader.cpp util/PropertiesReader.h util/Settings.cpp util/Settings.h) 
add_executable(my_cpp_training ${SOURCE_FILES}) 
target_link_libraries (my_cpp_training mysqlcppconn) 

在這裏,我將證明我有庫下載和路徑在我的電腦中提取CMakeList.txt使用我

path to mysql c++ library

請幫助我,而不是隻像寫你的想法,我已經半天搜索了一遍,並閱讀了很多東西。只需在這裏寫下你喜歡的不正確的內容,或者你忘記了這段代碼或行。

+1

是mysql.h其實在你指定的路徑中? –

+0

yeap,你可以點擊鏈接「到mysql C++庫的路徑」,你會看到這個圖片爲 – newbie2017

+0

的權利。所以它實際上不在磁盤上。您已經下載了mysqlcppconn C++連接器,而不是mysql C連接器。 –

回答

0

Richard Hodges是對的。這裏是他的評論:

沒錯。所以它實際上不在磁盤上。您已經下載了mysqlcppconn C++連接器,而不是mysql C連接器。

所以在我的方式我可以使用使用mysql_connection.h或下載正確的庫。 非常感謝,理查德