使用“.在项目中添加sqlite.c之后”,我应该继续,因为每件事情都很好。像cassert、cerrno、cstdio这样的标头,比方说,c*确实存在,并且通常编译器会看到它们并编译它们。
在将sqlite3.c添加到项目之后,现在我设想这些头文件的.h版本(assert.h、errno.h等)。首先将其添加到编译器中,然后防止在其他文件中包含c*头文件。
编译器报告如下:"cassert: No such file or directory",这不是事实。
我正在用qmake/gcc编译。
我怎么才能解决这个问题?
编辑:问题似乎与预编译头有关。在@Caduchon的评论之后,我再次查看了编译日志,然后看到了这个预编译头:
gcc -x c++-header pre.hpp..。
gcc -x c-header pre.hpp预编译头被添加到编译2次。第二个是c-header。我设想,当项目中没有.c文件时,预编译头只作为c++-header处理一次。但是,当也有一个.c文件时,它也被编译为c-header。
发布于 2020-07-02 13:58:58
问题是由于预编译的头文件。当.c文件被引入到项目中时,预编译的头文件也被编译为c-header文件。注释掉C编译器头的C++部分解决了这个问题:
#ifdef __cplusplus
#endifhttps://stackoverflow.com/questions/62695759
复制相似问题