- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个用 C 编写的项目:客户端和服务器端,两者都包含许多常见的全局变量。我想编写一个类(使用接口(interface) Transaction 的 clientbot 和 serverbot),它将调用每个项目的主要函数。
我已将所有常见的全局变量移至头文件中并将其包含在两个项目中。但在构建时,它给我带来了链接错误。
Error 3 error LNK2005: "int g_nBytestoSend" (?g_nBytestoSend@@3HA) already defined in transimpl.obj agentBot.obj
谁能建议我应该做什么?
最佳答案
您不应该将实际变量放在 header 中,而只能将这些变量的 extern
声明放在其中。将实际变量放在单独的 .c
或 .cpp
文件中并与其链接。
在 header (我们称之为 globals.h
)中,您可以放置此声明:
extern int g_nBytesToSend;
然后创建一个新的代码文件来保存实际变量(例如 global.c
):
int g_nBytesToSend;
假设您有三个代码文件 server.c
、client.c
和 bot.c
并且您正在使用 gcc。你可以这样构建:
gcc -o server.o -c server.c
gcc -o client.o -c client.c
gcc -o bot.o -c bot.c
gcc -o globals.o -c globals.c
gcc -o mybot server.o client.o bot.o globals.o
(尽量减少全局变量的数量。)
关于c - 如何处理两个项目之间共有的全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5308668/
我有一个包含 28 列的数据库。第一列是代码,第二列是名称,其余是值。 public void displayData() { con.Open(); MySqlDataAdapter
Redmi 官方今天宣布了 Redmi智能电视 A 系列新品,称即将开放预约。 官方并未公布 Redmi智能电视 A 系列新品的具体信息,但给出的海报显示该系列提供五种尺寸:32 英寸、43
我是一名优秀的程序员,十分优秀!