clang++ 链接问题 和 VS Code

如果你在windows上使用clang 并且同时安装有vs和mingw, clang链接是会自动使用msvs, 链接时会有LINK error

LINK : fatal error LNK1104: cannot open file 'libcmt.lib'

可以使用如下参数

clang++ --target=i686-pc-mingw .\op.cpp

用以指定平台。

或者

clang++ ./op.cpp -L"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib"

或者 开始-搜索-VS2013 x86 Native Tools Command Prompt 打开后

clang++ ./op.cpp

其实你只要执行"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"就可以调用msvc 链接clang++的目标文件了。

--target=i686-pc-mingw32

--target=i686-pc-vs2013

vs code 的配置参见这里

下面是我的UserSetting

{
"editor.tabSize": 4,
"editor.minimap.enabled": false,
"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"clang.cxxflags": [
"-std=c++17",
"-Wall",
"-I\"C:/mingw/lib/gcc/mingw32/6.3.0/include/c++\"",
"-I\"C:/mingw/lib/gcc/mingw32/6.3.0/include/c++/mingw32\"",
"-I\"C:/mingw/lib/gcc/mingw32/6.3.0/include/c++/backward\"",
"-I\"C:/Program Files (x86)/LLVM/lib/clang/5.0.0/include\"",
"-I\"C:/mingw/mingw32/include\"",
"-I\"C:/mingw/include\""
//"-I${workspaceRoot}/include",
//"-I${cwd}"
],
"clang.cflags": [
"-std=c99",
"-Wall",
"-I\"C:/mingw/lib/gcc/mingw32/6.3.0/include/c++\"",
"-I\"C:/mingw/lib/gcc/mingw32/6.3.0/include/c++/mingw32\"",
"-I\"C:/mingw/lib/gcc/mingw32/6.3.0/include/c++/backward\"",
"-I\"C:/Program Files (x86)/LLVM/lib/clang/5.0.0/include\"",
"-I\"C:/mingw/mingw32/include\"",
"-I\"C:/mingw/include\""
],
"clang.executable": "C:/Program Files (x86)/LLVM/bin/clang.exe",
"clang.completion.enable": true
}

在Linux或者Mac平台使用gcc 常常需要一些gcc预定义的宏区分不同平台,

可以使用下列命令

gcc -dM -E - < /dev/null

MAC上会定义__MACH__和__APPLE__

Linux有__linux和__unix

clang++ 链接问题 和 VS Code的更多相关文章

  1. linux下Clang和gcc的区别

    Clang 比 GCC 编译器的优势: 编译速度更快 编译产出更小 出错提示更友 好,比如 clang 在编译过程可以直接指出相对简单的出错位置以及它 “ 认为 ” 正确的方式 . 内置有静态分析工具 ...

  2. [Core] .NET Core & VS Code 之路(1) Hello World

    目录 相关链接 dotnet命令 VS Code Hello World Web Hello World 总结 其实本篇上个月已经写好, 只是 但是,不忘初心方得始终 相关链接 Learn .NET ...

  3. VS code 中的各种变量 ${file},${fileBasename}

    VS code 中的各种变量 ${file},${fileBasename} 2017年08月24日 11:14:07 bailsong 阅读数:7108    from: https://blog. ...

  4. Mac OS X 操作系统下IntelliJ IDEA激活码(Activation code)破解

    Mac OS X 操作系统(版本:10.13.6)下载并安装IntelliJ IDEA: Version: 2018.2.4 Download IntelliJ IDEA 下一步对IntelliJ I ...

  5. Cross-compilation using Clang

    Introduction This document will guide you in choosing the right Clang options for cross-compiling yo ...

  6. C++链接与装载

    1..obj文件的内部结构 2.映射到进程虚拟空间 3.链接的原理    C++ Code  123456789   1.未解决符号表:提供了所有在该编译单元里引用但是定义并不在本编译单元里的符号及其 ...

  7. Building clang on RedHat

    http://btorpey.github.io/blog/2015/01/02/building-clang/ clang is a great compiler, with a boatload ...

  8. 【转载】Visual Studio Code 构建 C/C++ 开发环境

    https://www.cnblogs.com/XieSir/articles/8288051.html 1. 安装 MinGW Distro / MinGW / GNU GCC 中的任何一款,( W ...

  9. 1 visual studio code 配置C++开发环境 (windows 开发环境)

    0 引言 最近帮GF(不幸变成ex了)配置C++开发环境,一开始想给她装个visual studio13完事,但是一想到自己安装以及使用时的诸多麻烦,就有点退却,觉得没有这个必要.正好了解到vscod ...

随机推荐

  1. 牛刀小试——记一次帮朋友小幅优化SQL

    和一个小朋友聊天,小朋友愁眉苦脸,不爱说话,我问怎么了,他说:经理交代的一个任务完成不了.我问:什么任务?他说:程序里的一个功能对应的SQL,太慢了.我问:现在性能是什么样?他说:一分钟.我问:达到什 ...

  2. Micropython TurnipBit 电子时钟 青少年编程入门

    电子时钟是一个很常用但是制作非常简单的小玩具了,对于Micropython初学者来说,制作一个电子时钟是非常简单又容易检验自己学习成果的实验了.TurnipBit相比于其他开发板,制作电子时钟就更加简 ...

  3. 软件License认证方案的设计思路

    销售license是商业软件的贯用商业模式.用户向商家购买软件安装盘搭载license许可,才可以使用该软件.我们作为软件开发者,为了保护自身的权益,在软件开发过程中也不可避免的会设计license管 ...

  4. eclipse热部署web项目

    一.选中JavaEE视图 因为在普通的Java视图下,窗口下方没有server选项卡 二.双击Tomcat 注意:可能很多人当然包括我一开始的时候,都是喜欢右键Tomcat然后Add and remo ...

  5. vmware虚拟机各个版本的安装破解(附安装包和注册机)

    VMware 是平时我们常用的虚拟机软件,特别是我们平时想试试其他的系统,比如说linux系统的时候但是又不想安装双系统,那么这个时候我们就可以试试这款虚拟软 件,如果你的电脑配置(主要是内存)够好的 ...

  6. pycharm+selenium搭建环境之no module named 'selenium'异常解决

    在pycharm上搭建python+selenium自动化测试环境时,遇到一个很坑的问题:no moduel named 'selenium' 如下图: 解决方法: 1.查看你的python是否正确安 ...

  7. iOS 提交审核报错 ERROR ITMS-90087解决办法

    ERROR ITMS-: "Unsupported Architectures. The executable for yht.temp_caseinsensitive_rename.app ...

  8. Redis TTL命令

    Redis TTL 命令以秒为单位返回 key 的剩余过期时间. redis TTL 命令基本语法如下: redis 127.0.0.1:6379> TTL KEY_NAME 当 key 不存在 ...

  9. 关于html表单的disabled属性的设置问题

    首先,我的看法是无论disable的值是否有值,只要设置了disabled属性的表单,无论是否有值,无论值为什么,都会被禁用.   来看下面例子: 在一个群里有人说因为直接写在表单属性上是字符串,因为 ...

  10. Algorithm --> 二进制中1的个数

    行文脉络 解法一——除法 解法二——移位 解法三——高效移位 解法四——查表 扩展问题——异或后转化为该问题 对于一个字节(8bit)的变量,求其二进制“1”的个数.例如6(二进制0000 0110) ...