vS 2008 中包含头文件vector的问题:

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vS 2008 中包含头文件vector的问题:相关的知识,希望对你有一定的参考价值。

cpp源码:

#if !defined(AFX_USERDATA_)
#define AFX_USERDATA_
#include <vector>
using namespace std;

typedef struct tag_DBTEST

longnID;
longnChecker;
CStringstrName;
tag_DBTEST()

nID= 0;
nChecker= 0;
strName= _T("");

void operator = (const tag_DBTEST& dbTest)

nID= dbTest.nID;
nChecker= dbTest.nChecker;
strName= dbTest.strName;

void Clear()

nID= 0;
strName= _T("");
nChecker= 0;

DBTest;

#endif//

以下这是报错信息:

1>ADOTEST.cpp
1>c:\program files\microsoft visual studio 9.0\vc\include\iterator : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\program files\microsoft visual studio 9.0\vc\include\iterator(1) : error C2143: 语法错误 : 缺少“;”(在“?”的前面)
1>c:\program files\microsoft visual studio 9.0\vc\include\iterator(1) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft visual studio 9.0\vc\include\iterator(1) : error C2018: 未知字符“0x1”
1>c:\program files\microsoft visual studio 9.0\vc\include\iterator(1) : fatal error C1004: 发现意外的文件尾

#ifndef AFX_USERDATA_
#define AFX_USERDATA_
#include <vector>
#include <atlstr.h>
#include <tchar.h>
using namespace std;
typedef struct tag_DBTEST

long nID;
long nChecker;
CString strName;
tag_DBTEST()

nID= 0;
nChecker= 0;
strName= _T("");

void operator = (const tag_DBTEST& dbTest)

nID= dbTest.nID;
nChecker= dbTest.nChecker;
strName= dbTest.strName;

void Clear()

nID= 0;
strName= _T("");
nChecker= 0;

DBTest;
#endif//
参考技术A tag_DBTEST &operator = 参考技术B 文本编码问题。、

如何在 GCC 搜索路径中包含头文件?

【中文标题】如何在 GCC 搜索路径中包含头文件?【英文标题】:How to include header files in GCC search path? 【发布时间】:2010-11-01 16:04:12 【问题描述】:

我在示例文件中有以下代码:

#include "SkCanvas.h"
#include "SkDevice.h"
#include "SkGLCanvas.h"
#include "SkGraphics.h"
#include "SkImageEncoder.h"
#include "SkPaint.h"
#include "SkPicture.h"
#include "SkStream.h"
#include "SkWindow.h"

但是,此代码位于 /home/me/development/skia 内的多个文件夹中(包括 core/animator/images/ports/svg/ 等等。)

如何让 GCC 识别这条路径?

【问题讨论】:

***.com/questions/558803/… 【参考方案1】:

试试gcc -c -I/home/me/development/skia sample.c

【讨论】:

很高兴在这里看到这个答案。值得一提的另一点是,当您有许多“.c”源文件时,有必要在命令行本身中指定每个文件。您不能只使用 -I 来指定所有源文件都在某个目录中。 如果header和源在同一目录下,是否需要特殊的include?无论哪种方式我都无法编译我的代码,我不确定问题是什么 根据this answer 的类似问题,gcc 不会自动在子目录中搜索不同的头文件。相反,pkg-config 可以产生正确的-I 选项? -I-L有什么区别? @EdwinPratt 也许你的意思是说-L 告诉 GCC 在哪里查找 以包含二进制库(由-l 指定)。 -I 告诉 GCC 在哪里寻找要包含的头文件。【参考方案2】:

当您不控制构建脚本/过程时,使用环境变量有时会更方便。

对于 C 包括使用 C_INCLUDE_PATH

对于 C++,包括使用 CPLUS_INCLUDE_PATH

查看link 了解其他 gcc 环境变量。

MacOS / Linux 中的使用示例

# `pip install` will automatically run `gcc` using parameters
# specified in the `asyncpg` package (that I do not control)

C_INCLUDE_PATH=/home/scott/.pyenv/versions/3.7.9/include/python3.7m pip install asyncpg

Windows 中的使用示例

set C_INCLUDE_PATH="C:\Users\Scott\.pyenv\versions\3.7.9\include\python3.7m"

pip install asyncpg

# clear the environment variable so it doesn't affect other builds
set C_INCLUDE_PATH=

【讨论】:

【参考方案3】:

-I 指令完成了这项工作:

gcc -Icore -Ianimator -Iimages -Ianother_dir -Iyet_another_dir my_file.c 

【讨论】:

以上是关于vS 2008 中包含头文件vector的问题:的主要内容,如果未能解决你的问题,请参考以下文章

不能在vsi2017的linux子系统中包含头文件

如何在 GCC 搜索路径中包含头文件?

在 PostgreSQL C 扩展中包含头文件

在作为朋友的类中包含头文件

如何在 Qt Creator 的 CMakeLists.txt 中包含头文件?

在 C++ 中包含头文件时尖括号 < > 和双引号“”之间的区别? [复制]