草庐IT

target_include_directories

全部标签

c++ - #include "MyClass.h"和 #include ".\myclass.h"有什么区别

我正在VS2010中进行开发,并希望将代码添加到现有项目中。顺便说一下,这是一个Win32/MFC。我忍不住注意到在MyClass类中(在本例中MyClass是CDialog类的扩展),cpp文件的顶部包含以下内容:#include"MyClass.h"#include".\myclass.h"我注意到输入的第二个包含没有大写,但我不太明白为什么? 最佳答案 "MyClass.h"将在您的项目设置中定义的INCLUDE_DIR路径上进行搜索。"./myclass.h"将在与当前文件相同的目录中搜索。Windows文件名不区分大小写,

c++ - std::tr1::function::target<TFuncPtr> 和协变/逆变

因为我喜欢用C#和C++编程,所以我打算实现一个类似C#的事件系统,作为我计划的C++SFML-GUI的坚实基础。这只是我的代码的摘录,我希望这能澄清我的概念://Event.h//STLheaders:#include#include#include//boostheaders:#include#includenamespaceUtils{namespaceGui{#defineIMPLEMENTS_EVENT(EVENTNAME,EVENTARGS)public:\Utils::Gui::IEvent&EVENTNAME(){returnm_on##EVENTNAME;}\prot

c++ - #include .h 或 .cpp 文件?

所以我遇到了这个看起来很奇怪的问题:当我导入一个单独类的.h文件时,我非常基本的程序会生成一条错误消息(对“foo::foo(int)”的undefinedreference)。但是,当我将导入文件更改为.cpp时,一切正常。现在,我读了一点书,看了一些视频教程,他们都说了同样的话:导入.h文件。那么为什么它不起作用?我使用Code::Blocks,在Windows7中编译和运行(无命令行)。我确实怀疑某些设置不太正确,但是,我确实想知道它是否正确我的代码失败了。主要.cpp:#include#include"Foo.h"//Thisdon'twork.IfiincludeFoo.cp

C++ 生成器 : #include <iostream> error

我正在测试新版本的CBuilder(XE2版)。大多数commnoninclude被重定向到boost库或dinkumware库(一些STL实现?)。#ifndefError_H#defineError_H#include#include//Errormessage,seebellow,please但编译因以下(和奇怪的)消息而停止:[BCC32Error]xlocale(1392):E2451Undefinedsymbol'MB_LEN_MAX'[BCC32Error]xlocale(1763):[BCC32Error]xlocnum(1495):E2451Undefinedsymb

c++ - 使用 Boost.Log 构建 Boost "error: target { simple_event_log.mc. } has no type"

我正在尝试构建Boost.Log(http://boost-log.sourceforge.net/libs/log/doc/html/index.html)。我将它添加到我的boost源并执行了我常用的boost构建命令。b2--build-dir="D:\boost\1.51.0\boost"toolset=gccvariant=releaselink=staticthreading=multiruntime-link=static--build-type=complete但什么也没发生,最后我收到了这个:D:/boost/1.51.0/src/tools/build/v2/bui

c++ - Doxygen 文档应该放在 include guards 之前吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。ImprovethisquestionDoxygen文档应该放在includeguards之前还是之后?在namespace之前或内部?假设header包含单个类(context)的声明,这就是我在此处记录的内容。#ifndefCONTEXT_HPP#defineCONTEXT_HPP#include/***Theapplicationcontextinterface.*/namespacetest{classcontext{

CMake 添加子目录错误 : "When specifying an out-of-tree source a binary directory must be explicitly specified"

我的目录结构如下:rootlibACMakeLists.txtClassA.cpplibBCMakeLists.txtClassB.cppsharedCodeenums.hAbstractClass.hCMake文件中如何包含sharedCode目录?这样classA(在libA中)和classB(在libB中)都可以使用enums.h和AbstractClass.h?在我尝试使用的CMakeLists.txt中:add_subdirectory(../sharedCode)但它给出了错误add_subdirectorynotgivenabinarydirectorybutthegiv

c++ - gcc 和 g++ 错误 : error trying to exec 'cc1plus' : execvp: No such file or directory

我在编译时遇到问题.c和.cpp使用gcc的文件和g++,对于这两种情况,我都收到了消息:g++(orgcc):errortryingtoexec'cc1plus':execvp:Nosuchfileordirectory`我已经尝试重新安装gcc和g++并确保它们的版本相同。编辑:我使用的是ubuntu16.04.1LTS,g++和gcc的版本都是5.4.020160609。以下是echo|g++-v-xc++-fsyntax-only-的输出:Usingbuilt-inspecs.COLLECT_GCC=g++Target:x86_64-linux-gnuConfiguredwit

c++ - "Include What you use"

我读到了一个名为"include-what-you-use"的工具这可以帮助清理多余的包括从源代码。我知道有一个编译器LLVM(clang)版本和一个GCC版本。我的问题是:为什么这个工具依赖于编译器而不是“跨平台”的编译器。为什么从一开始工具的创建者就没有让它独立于编译器?是否与它的特殊实现或类似的东西有关?如果我想采用与LLVM兼容的工具版本,并且我想让它与GCC兼容(因为我正在使用GCC),我需要为此做什么? 最佳答案 在大多数情况下,Include-What-You-Use应该能够处理任何有效的C++代码库,无论该代码库是使

c++ - Visual Studio 忽略 "Additional Library Directories"字段

我有几个我需要使用的库,但我遇到了一个不寻常的错误,这是发生了什么。我创建了一个新项目,并且一如既往地进入properties>Linker>Input以添加额外的依赖项。然后我进入Linker>General并将它们的位置包含在其他库目录下。问题是无论我做什么,VisualStudio似乎都忽略了额外的库目录字段,尽管我在命令行中正确地看到了它。结果,我收到无法打开库(LNK1104)错误。当我将路径放在库旁边并检查拼写错误时,一切正常。我还尝试移动库并提供替代路径,但一切都指向visualstudio,只是忽略了该字段。更奇怪的是,我还有另一个项目,在这个项目中一切正常。有没有人知