Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 用C+编译SQLite合并文件+;文件使用minGW-w64_C++_Sqlite_Mingw W64 - Fatal编程技术网

C++ 用C+编译SQLite合并文件+;文件使用minGW-w64

C++ 用C+编译SQLite合并文件+;文件使用minGW-w64,c++,sqlite,mingw-w64,C++,Sqlite,Mingw W64,我刚刚开始使用C/C++和SQLite进行实验,安装了minGW-w64编译器,并能够获得小的“Hello,world.”代码以编译成一个.exe文件并运行它 然后,我将sqlite3.c合并文件添加到目录中,并尝试使用helloworld.c文件编译它,第一个结果是出现了很多很多行错误和警告,这是因为我使用了g++而不是gcc 我有两个非常基本的问题 始终以这种方式使用sqlite3.c合并文件,并将其与其余代码一起编译,即使它是一个相当大的文件,这是否正确。SQLite网站声明,“建议对所有

我刚刚开始使用C/C++和SQLite进行实验,安装了minGW-w64编译器,并能够获得小的“Hello,world.”代码以编译成一个.exe文件并运行它

然后,我将sqlite3.c合并文件添加到目录中,并尝试使用helloworld.c文件编译它,第一个结果是出现了很多很多行错误和警告,这是因为我使用了
g++
而不是
gcc

我有两个非常基本的问题

  • 始终以这种方式使用sqlite3.c合并文件,并将其与其余代码一起编译,即使它是一个相当大的文件,这是否正确。SQLite网站声明,“建议对所有应用程序使用合并”并“使[它们]运行得更快”
  • 对于单独编译的hello world,该.exe文件为53kb,对于组合编译,该文件为1015kB,尽管没有使用SQLite语句

  • 为什么使用
    g++
    生成了较大的错误列表而
    gcc
    没有生成任何错误列表?我知道代码< > G++< /C>是C和C++,SqLITE3是C。这是否意味着C++文件和SqLeTe3.c不能编译在一起?

  • 谢谢。

    是的,像这样捆绑sqlite是有意的行为

    您可以先用c编译器编译
    sqlite3.c
    ,然后将结果链接到二进制文件中:

    gcc -O2 -c sqlite3.c
    g++ -O2 sqlite3.o myapp.cpp -o myapp.exe
    

    <>我强烈建议用一个简单的MaFor文件或CMAP.< /P>自动化这个项目,而C++原本是C的超集,现在它们稍微偏离了一点,所以现代C文件不是有效的C++,这并不奇怪。我可以看出我需要仔细阅读编译过程中的步骤和中间文件。我可以问一个后续问题吗,关系松散。我正试图用它来构建一个小的实用函数,用于处理用不同语言编程的应用程序的本地数据存储。在哪里可以了解在C/C++中一起构建UI和事件循环(如果我指的不是正确的术语,比如鼠标点击等)所需的步骤?我读了一些关于openGL和SDL的书;我只需要构建一个简单的UI,类似于这个SO页面,而不是3D游戏图形。谢谢。通常情况下,你不需要自己编写工具包,而是选择一个工具包并以此为基础进行构建。我使用过(按字母顺序):gtk、qt和wx。我相信还有很多更小的工具包。如果你真的想建立你自己的,你必须首先研究与你的窗口系统的可用交互。