megatron Temat założony przez niniejszego użytkownika |
[C++] mysql - problem przy pierwszej kompilacji » 2013-07-27 14:46:48 Witam serdecznie. Chcę stworzyć nowy projekt łączący się z db mysql, lecz napotykam problem już na początku. Podczas kompilacji projektu otrzymuje logi: mingw32-g++.exe -Wall -fexceptions -g -std=c++11 -std=c++0x -Wall -g -c D:\programowanie\projekty\mysql\main.cpp -o obj\Debug\main.o In file included from d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/mysql_version.h:19:0, from d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/mysql.h:58, from D:\programowanie\projekty\mysql\main.cpp:1: d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/ndb_version.h:109:3: error: stray '@' in program d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/ndb_version.h:109:3: error: stray '@' in program d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/ndb_version.h:109:3: error: stray '@' in program d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/ndb_version.h:109:3: error: stray '@' in program d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/ndb_version.h:109:3: error: stray '@' in program d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/ndb_version.h:109:3: error: stray '@' in program In file included from d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/mysql.h:58:0, from D:\programowanie\projekty\mysql\main.cpp:1: d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/mysql_version.h:43:2: error: invalid preprocessing directive #endi In file included from d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/mysql.h:58:0, from D:\programowanie\projekty\mysql\main.cpp:1: d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/mysql_version.h:17:0: error: unterminated #ifndef In file included from d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/mysql.h:57:0, from D:\programowanie\projekty\mysql\main.cpp:1: d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/mysql_com.h:116:3: error: 'SOCKET' does not name a type d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/mysql_com.h:180:16: error: 'SOCKET' was not declared in this scope d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/mysql_com.h:180:29: error: expected primary-expression before 'const' d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/mysql_com.h:180:58: error: expected primary-expression before 'unsigned' d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/mysql_com.h:181:9: error: expected primary-expression before 'unsigned' d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/mysql_com.h:181:29: error: expression list treated as compound expression in initializer [-fpermissive] In file included from d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/mysql_version.h:19:0, from d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/mysql.h:58, from D:\programowanie\projekty\mysql\main.cpp:1: d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/ndb_version.h: In function 'int ndb_check_prep_copy_frag_version(Uint32)': d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/ndb_version.h:109:18: error: 'NDB_VERSION_MAJOR' was not declared in this scope d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/ndb_version.h:109:18: error: 'NDB_VERSION_MINOR' was not declared in this scope d:\programowanie\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/../../../../include/ndb_version.h:109:18: error: 'NDB_VERSION_BUILD' was not declared in this scope D:\programowanie\projekty\mysql\main.cpp: At global scope: D:\programowanie\projekty\mysql\main.cpp:3:25: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] D:\programowanie\projekty\mysql\main.cpp:4:29: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] D:\programowanie\projekty\mysql\main.cpp:5:29: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] D:\programowanie\projekty\mysql\main.cpp:6:23: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] D:\programowanie\projekty\mysql\main.cpp:7:32: error: 'NULL' was not declared in this scope D:\programowanie\projekty\mysql\main.cpp:8:27: error: 'NULL' was not declared in this scope D:\programowanie\projekty\mysql\main.cpp: In function 'int main()': D:\programowanie\projekty\mysql\main.cpp:14:24: error: 'NULL' was not declared in this scope Process terminated with status 1 (0 minutes, 0 seconds) 20 errors, 4 warnings (0 minutes, 0 seconds)
natomiast kod wyglada następujaco: #include <mysql.h>
static char * sql_host = "localhost"; static char * sql_username = "***"; static char * sql_password = ""; static char * sql_db = "***"; static unsigned int sql_port = NULL; static char * sql_socket = NULL; static unsigned int sql_flags = 0; static MYSQL * conn;
int main() { conn = mysql_init( NULL ); mysql_real_connect( conn, sql_host, sql_username, sql_password, sql_db, sql_port, sql_socket, sql_flags ); return 0; }
Wiem, że nie zbyt wiele to mówi, ponieważ jest to tylko połączenie z db. Problem występuje tuż po dodaniu pliku nagłówkowego i przenosi mnie do pliku ndb_version.h. Z góry dziękuję za pomoc i pozdrawiam. |
|
Mrovqa |
» 2013-07-27 14:50:54 Błąd jest w plikach nagłówkowych (patrz logi), więc dlaczego wklejasz zły plik? Wklej te fragmenty plików (wskazana linia + parę z góry i dołu), które powodują błąd. |
|
megatron Temat założony przez niniejszego użytkownika |
» 2013-07-27 14:53:41 błąd pokazuje w tej linijce: if( version == NDB_VERSION_D ) static inline int ndb_check_prep_copy_frag_version( Uint32 version ) { const Uint32 major =( version >> 16 ) & 0xFF; const Uint32 minor =( version >> 8 ) & 0xFF; if( version == NDB_VERSION_D ) return 2; if( major >= 6 ) { if( minor == 2 ) { if( version >= NDBD_PREPARE_COPY_FRAG_V2_62 ) return 2; if( version >= NDBD_PREPARE_COPY_FRAG_VERSION ) return 1; return 0; } else if( minor == 3 ) { if( version >= NDBD_PREPARE_COPY_FRAG_V2_63 ) return 2; return 1; } return 2; } else if( major == 5 && minor == 1 ) { if( version >= NDBD_PREPARE_COPY_FRAG_V2_51 ) return 2; } return 0; }
|
|
MrPoxipol |
» 2013-07-27 14:53:52 Spróbuj skompilować za pomocą gcc (po prostu zmien rozszerzenie na .c) i na pewno wszystko dobrze zaincludowales? |
|
megatron Temat założony przez niniejszego użytkownika |
» 2013-07-27 15:26:00 na pewno wszystko dobrze zaincludowales? |
sam nie jestem pewien... folder include i lib to zapewne bez problemów ale nie jestem pewien do ustawień do linker options dodałem -libs -lmysql może trzeba dodać coś jeszcze. narazie szukam. jak ktoś ma pomysł to proszę pisać |
|
Mrovqa |
» 2013-07-27 15:36:41 error: stray '@' in program Wygląda na niedozwolone znaki w kodzie.error: invalid preprocessing directive #endi #endif ... error: unterminated #ifndef #ifndef MAKRODEFINICJA ... error: 'SOCKET' does not name a type error: 'SOCKET' was not declared in this scope (...) error: 'NDB_VERSION_MAJOR' was not declared in this scope error: 'NDB_VERSION_MINOR' was not declared in this scope error: 'NDB_VERSION_BUILD' was not declared in this scope Brakujący #include ? error: expected primary-expression before 'const' error: expected primary-expression before 'unsigned' error: expected primary-expression before 'unsigned' error: expression list treated as compound expression in initializer [-fpermissive] Yyy... Błędy składniowe. error: 'NULL' was not declared in this scope Geniusz... #define NULL 0 Skąd wziąłeś ten kod? Jeżeli to zewnętrzna biblioteka dla twojej architektury, systemu operacyjnego i kompilatora, to na pewno przez kogoś nieumiejętnego zmodyfikowana. |
|
megatron Temat założony przez niniejszego użytkownika |
» 2013-07-27 15:45:06 jeśli chodzi ten pierwszy kod to z jednego kursu, a jeśli ten drugi z biblioteki to raczej nikt nic nie grzebał dam może mniejszy log: mingw32-g++.exe -Wall -fexceptions -fpermissive -g -std=c++11 -std=c++0x -Wall -g -I..\..\biblioteki_i_silniki\mysql\include\ -ID:\programowanie\biblioteki_i_silniki\mysql\include\ -c D:\programowanie\projekty\mysql\main.cpp -o obj\Debug\main.o In file included from ..\..\biblioteki_i_silniki\mysql\include/mysql_version.h:19:0, from ..\..\biblioteki_i_silniki\mysql\include/mysql.h:58, from D:\programowanie\projekty\mysql\main.cpp:1: ..\..\biblioteki_i_silniki\mysql\include/ndb_version.h:109:3: error: stray '@' in program ..\..\biblioteki_i_silniki\mysql\include/ndb_version.h:109:3: error: stray '@' in program ..\..\biblioteki_i_silniki\mysql\include/ndb_version.h:109:3: error: stray '@' in program ..\..\biblioteki_i_silniki\mysql\include/ndb_version.h:109:3: error: stray '@' in program ..\..\biblioteki_i_silniki\mysql\include/ndb_version.h:109:3: error: stray '@' in program ..\..\biblioteki_i_silniki\mysql\include/ndb_version.h:109:3: error: stray '@' in program In file included from ..\..\biblioteki_i_silniki\mysql\include/mysql.h:58:0, from D:\programowanie\projekty\mysql\main.cpp:1: ..\..\biblioteki_i_silniki\mysql\include/mysql_version.h:43:2: error: invalid preprocessing directive #endi In file included from ..\..\biblioteki_i_silniki\mysql\include/mysql.h:58:0, from D:\programowanie\projekty\mysql\main.cpp:1: ..\..\biblioteki_i_silniki\mysql\include/mysql_version.h:17:0: error: unterminated #ifndef In file included from ..\..\biblioteki_i_silniki\mysql\include/mysql.h:57:0, from D:\programowanie\projekty\mysql\main.cpp:1: ..\..\biblioteki_i_silniki\mysql\include/mysql_com.h:116:3: error: 'SOCKET' does not name a type ..\..\biblioteki_i_silniki\mysql\include/mysql_com.h:180:16: error: 'SOCKET' was not declared in this scope ..\..\biblioteki_i_silniki\mysql\include/mysql_com.h:180:29: error: expected primary-expression before 'const' ..\..\biblioteki_i_silniki\mysql\include/mysql_com.h:180:58: error: expected primary-expression before 'unsigned' ..\..\biblioteki_i_silniki\mysql\include/mysql_com.h:181:9: error: expected primary-expression before 'unsigned' ..\..\biblioteki_i_silniki\mysql\include/mysql_com.h:181:29: warning: expression list treated as compound expression in initializer [-fpermissive] In file included from ..\..\biblioteki_i_silniki\mysql\include/mysql_version.h:19:0, from ..\..\biblioteki_i_silniki\mysql\include/mysql.h:58, from D:\programowanie\projekty\mysql\main.cpp:1: ..\..\biblioteki_i_silniki\mysql\include/ndb_version.h: In function 'int ndb_check_prep_copy_frag_version(Uint32)': ..\..\biblioteki_i_silniki\mysql\include/ndb_version.h:109:18: error: 'NDB_VERSION_MAJOR' was not declared in this scope ..\..\biblioteki_i_silniki\mysql\include/ndb_version.h:109:18: error: 'NDB_VERSION_MINOR' was not declared in this scope ..\..\biblioteki_i_silniki\mysql\include/ndb_version.h:109:18: error: 'NDB_VERSION_BUILD' was not declared in this scope D:\programowanie\projekty\mysql\main.cpp: In function 'int main()': D:\programowanie\projekty\mysql\main.cpp:5:65: error: 'printf' was not declared in this scope
|
|
Mrovqa |
» 2013-07-27 22:43:22 Nie wiem jaki sens jest podawać to samo, tylko nieco okrojone. Te błędy występują w plikach biblioteki i sądząc po niektórych błędach ktoś musiał grzebać w nich i je uszkodzić. Po prostu ściągnij oficjalną paczkę z biblioteką, albo popraw aktualne nagłówki. Zalecam tę pierwszą opcję. |
|
« 1 » 2 |