zoukankan      html  css  js  c++  java
  • 《C++ Primer》

    要运行一个最简单的C++程序,按照书上的代码写完

    int main()
    
    {
    
      reutrn 0;
    
    }

    保存为test1.cc

    根据书上命令, windows下用cl.exe进行编译,那个l是小写的L,应该是compile + link的意思,当年学C的时候,这两个命令是分开的。

    首先要确保已经安装的C++的开发环境,我安装的是VS2017版的C++。

    cl.exe在D:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.16.27023inHostx64x64

    为了方便调用,可以把这个路径加入到系统环境变量path。

    打开CMD,进入我写的代码目录,执行cl test1.cc,分多次报以下错误:

    LINK : fatal error LNK1104: 无法打开文件“LIBCMT.lib”
    LINK : fatal error LNK1104: 无法打开文件“oldnames.lib”
    LINK : fatal error LNK1104: 无法打开文件“kernel32.lib”
    LINK : fatal error LNK1104: 无法打开文件“libvcruntime.lib”
    LINK : fatal error LNK1104: 无法打开文件“libucrt.lib”
    LINK : fatal error LNK1104: 无法打开文件“Uuid.lib”

    网上找到的都是以VS项目为基础的设置。

    我还没有在VS中建立项目,只是调用一下编译器,此路不通。

    其实和C一样,只要把这些文件复制到代码目录就可以了。

    D:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.16.27023libx64oldnames.lib
    D:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.16.27023libx64libcmt.lib
    C:Program Files (x86)Windows Kits10Lib10.0.17763.0umx64kernel32.lib
    D:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.16.27023libx64libvcruntime.lib
    C:Program Files (x86)Windows Kits10Lib10.0.10240.0ucrtx64libucrt.lib
    C:Program Files (x86)Windows Kits10Lib10.0.17763.0umx64Uuid.Lib

    说来也奇怪,把这些路径加入到Path中,并没有效果,依然是找不到,看来编译器并没有读取path设置

    复制到我的程序所在目录以后,编译就通过了。但此时的目录大小已达到71m

    堂堂C++程序,不到1k,环境需要71M,有点搞笑了,目前还不知道是哪里的问题。

    约半小时以后

    现在知道问题出在哪里了。

    问题出在,设置环境变量的时候,不能把那些路径加到path中去,而是要增加一个单独命名的变量,叫Lib,只能这三个字母,其它名字不行,大小写不敏感。

    这样加了以后,就不必把那些文件复制到代码目录下了。

    据我分析,如果用VS编译,这些动作会由VS自动完成,现在我用命令行,所以只能由我手动完成。留下一个悬念,以后用VS编译项目的时候,做一个测试进行验证。

  • 相关阅读:
    Linux 学习 step by step (1)
    ubuntu server nginx 安装与配置
    ubuntu server samba服务器配置
    iOS app集成支付宝支付流程及后台php订单签名处理
    mac 连接windows 共享内容
    linux 文件查找,which,whereis,locate,find
    ubuntu server vsftpd 虚拟用户及目录
    ubuntu server 安装 mantis bug tracker 中文配置
    ubuntu server vsftpd 匿名用户上传下载及目录设置
    linux 用户管理,用户权限管理,用户组管理
  • 原文地址:https://www.cnblogs.com/Sabre/p/14254560.html
Copyright © 2011-2022 走看看