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 库编译问题的主要内容,如果未能解决你的问题,请参考以下文章
2015版Visual Studio Code和Visual Studio Community的区别