Visual Studio 2015 和 Taywee/args 库编译问题

Posted

技术标签:

【中文标题】Visual Studio 2015 和 Taywee/args 库编译问题【英文标题】:Visual Studio 2015 and Taywee/args library compilation issues 【发布时间】:2016-07-10 18:02:12 【问题描述】:

我在 Visual Studio 2015 社区版中编译以下代码时遇到问题( 首先我说的是这个库:https://github.com/Taywee/args

#include <iostream>
#include <args.hxx>
int main(int argc, char **argv)

     args::ArgumentParser parser("This is a test program.", "This goes after the options.");
     args::HelpFlag help(parser, "help", "Display this help menu", 'h', "help");
//Honestly, the code doesn't really matter.
    return 0;

(这是存储库主页中的默认示例)

我将库添加到项目的路径中,但每当我尝试编译时,我都会遇到 100 多个错误(第一个是

C2653   'Validators': is not a class or namespace name  console_args_test   D:\dev\lib\args\args.hxx    585

我正在运行 Windows 10 x64 并且应用程序版本是 32 位。 这可能是我的设置的问题。我可能需要设置一些标志或其他东西,但我不知道在哪里看。

顺便说一句,不管怎样,在同一系统上使用 gcc 一切正常。

【问题讨论】:

您能添加using namespace args; 看看是否有效吗?看来编译器无法解析Validators,我认为它位于args:: @jessehouwing :您的意思是在 main() 中添加它?我在 main() 中拥有什么并不重要。当它尝试编译 args.hxx 文件时会出现问题。我可以有一个黑色程序,它会产生同样的错误。 在main之前,在#includes之后,插入using namespaces args;它也可以进入main,但我只是想知道这是否有效。 @David Thomas:不。一样。顺便说一句,这是一个包含所有错误的 pastebin:pastebin.com/uwB4MQGv 【参考方案1】:

显然这是代码顺序的问题。英特尔 C++ 编译器也有类似的问题。 It was fixed in this pull request

【讨论】:

以上是关于Visual Studio 2015 和 Taywee/args 库编译问题的主要内容,如果未能解决你的问题,请参考以下文章

studio vs2015啥软件

visual studio 2015怎样升级

2015版Visual Studio Code和Visual Studio Community的区别

visual studio 2015怎么用

Visual Studio 2015 与 Visual Studio Code 啥关系 或 区别

从 Visual Studio 2013 转换到 Visual Studio 2015 的问题