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编译项目的时候,做一个测试进行验证。

  • 相关阅读:
    AcWing 157. 树形地铁系统 (hash判断树同构)打卡
    AcWing 156. 矩阵 (哈希二维转一维查询)打卡
    AcWing 144. 最长异或值路径 01字典树打卡
    AcWing 143. 最大异或对 01字典树打卡
    AcWing 142. 前缀统计 字典树打卡
    AcWing 139. 回文子串的最大长度 hash打卡
    AcWing 138. 兔子与兔子 hash打卡
    常用C库函数功能及用法
    编程实现C库函数
    C语言面试题5
  • 原文地址:https://www.cnblogs.com/Sabre/p/14254560.html
Copyright © 2011-2022 走看看