当前位置:C++技术网 > 资讯 > VS2017开发Linux程序时解决未定义的标识符问题办法

VS2017开发Linux程序时解决未定义的标识符问题办法

更新时间:2017-11-14 10:51:41浏览次数:1+次

    使用VS2017开发Linux程序,还是一个比较新鲜的体验。这个是一种Windows程序员转Linux程序员才会有的体验。
    为什么这么说呢?Linux程序员一般都有自己那一套,用惯了自然不会换。比如他们用惯了QT Creator,就不会用VS。而VS则是Windows程序开发的最常用IDE,所以Windows程序员再熟悉不过了。如果只是做Windows开发,也不会涉及到VS2017的Linux程序开发的问题。
    为什么是VS2017,而不是其他版本。其他版本的VS不能正常的直接通过VS连接Linux服务器进行远程调试开发,虽然VS2015就开始支持这个功能,但是毕竟还是很鸡肋。VS2017就做的比较完善了。但是总的来说,还是有一些做的不够好,不过也很不错了。剩下的我们自己动手解决吧。
    典型的就是“未定义标识符”的问题。这个问题的根源在于VS本地缺少各种头文件,导致VS无法找到各种标识符的定义位置。当然,我们的程序是会自动上传到Linux服务器上运行的,所以自然也是没有问题的。只是代码中各种波浪线,看着实在不舒服。还是解决一下。
    如何找到各种标识符的头文件,以及如何消除波浪线呢?
    首先我们要知道我们出现波浪线的函数的头文件是什么。这个当然我们是知道的。不知道的可以上网搜索。而使用Linux的man命令也可以搜,不过毕竟Windows程序员还是不习惯。查个头文件,网上都可以搞定。
    然后就是要把这些头文件统统下载到本地,然后加入到VS项目中,然后在VS项目中包含此头文件的目录,方法见《C++头文件包含的各种姿势,你知道不》。这样的话,只要功夫到位了,各种标识符就找得到定义了。为了彻底点,我们一般都把相关的头文件目录全部下载下来。
    现在的问题是,去哪下载完整的头文件呢?当然是目标服务器咯。就是VS2017连接的Linux服务器,因为这个服务器就是你的VS2017的远程执行环境,你在这个服务器上找头文件,自然也是版本一致的。如果随便在网上下载,很可能版本不一致,会引发各种乱七八糟的问题。
    在Linux找头文件,我们只需要熟悉find命令即可,使用如下:
find / -name 头文件的名称
    输入头文件的名称,然后搜索,就可以找到你需要的头文件的所有路径。如下图所示:
    VS2017开发Linux程序时解决未定义的标识符问题办法
    我们可以看到,在Linux系统中找到了4个路径,第一个是我们项目远程的路径,虽然有了一个ipc.h,但是并不能满足要求。而我们项目的头文件就是复制的第二个目录sys下的头文件。所以,我们为了彻底解决这个标识符的问题,我们就将后面两个头文件的目录linux和bits全部下载到本地,然后导入到我们的VS2017的项目,然后就可以了。
    下载的话,请通过FTP或SFTP工具下载。推荐使用《程序员必备软件:开源免费的图形化SFTP客户端WinSCP》。
    导入成功后,代码中的标识符就没有波浪线了。如下图所示:
    VS2017开发Linux程序时解决未定义的标识符问题办法
    在导入之前,不管怎么包含头文件,IPC_CREAT都有波浪线。虽然此时也能够正常编译,但是看着却不爽。然后导入头文件后,舒服了。