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: 发现意外的文件尾
#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的问题:的主要内容,如果未能解决你的问题,请参考以下文章