c++ - VS2010 带有 extern 关键字

标签 c++ mysql user-defined-functions

我有以下两个文件:

  1. foo.h
  2. 酒吧.cpp

foo.h中,我声明了一个变量extern

现在,我想在 bar.cpp 中使用相同的变量(在包含 foo.h 之后)。

在 VS2008 和 VS2010 下,我收到 unresolved external symbol 错误,而在使用 gcc 的 Ubuntu 下,编译成功。

(即,我正在尝试编译以下源代码 :http://www.fromdual.com/using-mysql-user-defined-functions-udf ;foo.h 引用 srv0srv.h,bar.cpp 引用源代码。所有包含都已就位,编译成功,正在链接跌倒)

问题可能是什么?

最佳答案

extern 关键字向编译器指示其后面的变量已在其他位置声明。它实际上并不为变量分配空间。如果您想创建一个可以通过包含头文件来使用的全局变量(顺便说一下,这通常是一个坏主意),您可以按照以下方式进行。

在 foo.h 中:

extern int myVar;

在 foo.cpp 中:

int myVar;

myVar 现在位于 foo.cpp 中,但 foo.h 中的 extern 语句允许其他文件(例如 bar.cpp)中的代码通过包含 foo.h 来访问它。

关于c++ - VS2010 带有 extern 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5718556/

相关文章:

c++ - OpenGL - 重新排序渲染方法后崩溃

c++ - 为什么 lambda 在转换为函数指针时不能在 constexpr 上下文中使用?

MySQL:如果包含操作,则查询用户标识

python - 关于以下代码的一些问题

c++ - 在构造函数中将指针/引用传递给现有对象的首选方式是什么?

c++ - 匹配正则表达式列表的算法

mysql 有重复的键

mysql - 获取数据集中多列不为 NULL 的行数?

sql-server - SQL Server View 或表值函数?

sql-server - 内联表值 UDF 能否优于 SELECT 列列表中的等效标量 UDF?