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