Visual Studio 2010 包含文件可以'see'但不能编译
visual studio 2010 include file can 'see' but cannot compile
我相信一定有一个非常简单的解决办法。
我正在尝试包含一个头文件。我已经添加了包含目录。当我用引号括住vs2010的新特性时,它现在显示它可以"看到"我想要包含的文件,并且工具提示将其引用到正确的目录中。
然而,我在#include下面得到一个红色下划线,表示有问题,项目不会构建,因为它不能包含文件。
我可以通过添加完整的相对路径来构建,但这有点混乱。
so in summary
#include "myfile.h" FAILS
#include "../../includes/myfile.h" WORKS
任何想法?
您必须在以下字段中添加../../includes
:
Project Properties> C/c++> General> Additional Include Directories
有关详细信息,请访问相应的MSDN页面
If
#include "myfile.h"
失败,但
#include "../../includes/myfile.h"
工作,这意味着你的没有包含目录在你的路径。假设你的结构是这样的:
/project
/src
myfile.cpp -> myfile.h included here
/include
/dir1
myfile.h
您需要添加到您的包含目录./include/dir1/
,而不仅仅是./project
或./include
。
使用<...>
而不是"..."
只是告诉编译器首先查找系统包含目录,所以这不会有太大帮助。这样说的答案是错误的。通常,您会使用<...>
的标题,如string
或vector
和"..."
类型包含您自己的标题。
相关文章:
- std::unique_ptr 在 GCC 中工作,但不能在 Visual Studio 中编译
- 为什么使用 std::vector 的代码不能编译,但使用 std::unique_ptr 如果没有 noexcept
- 返回实例变量的c++方法可以访问变量中的数据,但不能更改它,但在编译时不会生成错误
- C++程序使用 mingw 在 Linux 上交叉编译在 MSy2 中工作,但不能直接在 Windows 中工作
- 此模板函数在哪里生成?可以通过g++编译,但不能在Visual Studio中编译
- 没有返回类型的静态函数可以通过Windows上的编译,但不能传递Linux上的编译
- 可以在Ubuntu中进行编译,但不能在Mac OS X中进行编译
- 是否可以在编译时使用`constexpr std::initializer_list`,但不能使用ODR
- C++ 代码使用 .cpp Source 编译,但不能使用 .c 进行编译
- random_shuffle() 适用于 Windows,但不能在 Linux 上编译
- VRPN C++代码在Linux上编译,但不能在Windows上编译
- C++中的简单代码正在编译,但不能在Linux中执行
- 这个模板"specialization"代码在做什么,为什么它可以编译但不能按预期工作?
- c++代码可以在centosg++中编译,但不能在Visual studio 2008中编译
- 为什么谷歌测试编译,但不能看到我的项目来源
- Netbeans Cpp编译和运行项目,但不能使用cppunit进行测试
- c++代码可以在mac上编译,但不能在linux上编译
- 语句调用构造函数,但对构造函数不做任何操作——为什么它不能编译
- 标量初始化器代码中的多余元素可以用gcc编译,但不能用g++
- Visual Studio 2010 包含文件可以'see'但不能编译