SQLite的静态链接问题(Mingw-w64 / gcc 4.8.1)

时间:2014-06-20 00:18:04

标签: c++ gcc sqlite mingw-w64

我正在尝试使用sqlite3.c编译我的应用程序,但是收到了许多编译错误,所有这些错误都来自sqlite3.c。如果我使用动态链接而不是静态链接,它编译得很好。

此命令失败

g++ -std=c++11 main.cpp sqlite3.c -o main.exe -static -lws2_32 -static-libstdc++ -static-libgcc

虽然这个运行顺利

g++ -std=c++11 main.cpp -o main.exe -L./ -lsqlite3 -lws2_32 -static-libstdc++ -static-libgcc

我的命令行出了什么问题? 提前致谢

更新 下面是第一个和最后一个错误消息......大约有4900行!

sqlite3.c:29081:37: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
     sqlite3_snprintf(nBuf-18, zBuf, "%s/"SQLITE_TEMP_FILE_PREFIX, zDir);
....
....
....
sqlite3.c:122602:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
   db->aDb[0].zName = "main";
                    ^
sqlite3.c:122604:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
   db->aDb[1].zName = "temp";
                    ^
sqlite3.c: In function 'int sqlite3_open16(const void*, sqlite3**)':
sqlite3.c:122746:50: error: invalid conversion from 'const void*' to 'const char*' [-fpermissive]
   zFilename8 = sqlite3ValueText(pVal, SQLITE_UTF8);
                                                  ^

0 个答案:

没有答案