mysql—为什么visual studio代码即使头文件路径在include路径中也找不到“ulong/uint”?

khbbv19g  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(455)

我正试图让intellisense在mysql源代码上工作,在ubuntu上使用visualstudio代码。
该项目需要 libmysqlclient-dev ,已安装。
即使我在 includePath :

"includePath": [
            "/usr/include/mysql",
            "${workspaceFolder}/include"
        ],

(这是所需保险的一部分;我添加了许多其他的,但都没有用)
数据类型 ulong 以及 uint 无法识别,导致一连串错误:

identifier "uint" is undefined
identifier "ulong" is undefined
// and so on

这很奇怪,因为我可以看到两种类型的定义:

/usr/include/mysql/my_global.h
177:typedef unsigned int uint;
497:typedef unsigned long   ulong;        /* Short for unsigned long */
504:typedef unsigned long long int ulonglong; /* ulong or unsigned long long */

并且存在include指令(示例文件如下):

client/mysqldump.c
43:#include <my_global.h>

我错过了什么?

zqdjd7g9

zqdjd7g91#

考虑到条件编译功能的复杂使用,例如 #if , #ifdef ,和 #ifndef 在源代码(这里有一个版本)中,如果没有关于具体环境的具体信息,就不可能确切地说出您需要做什么。
但是,一般来说,您需要确保您的环境是这样的,即与相关 typedef 语句实际上由c预处理器包含在编译的代码中。
有几种方法可以帮助确定这一点。第一,你可以让你的编译器转储所有的宏。对于msvc,请参见如何查找cl.exe的内置宏。其次,可以检查预处理代码的输出。对于msvc,请参见如何在visualstudio中预处理后查看c/c++源文件?。
当由于复杂的原因有许多可能的结果时,这两种方法中的任何一种都可以非常有助于查看实际编译的代码 #if... 预处理器指令。

相关问题