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. js 实现table每列可左右拖动改变列宽度 【转载】

    <!DOCTYPE HTML> <html> <head> <meta charset="gbk"> <title>ta ...

  2. SublimeText3插件安装及使用

    之前写过一篇文章讲了安装PackageControl,这里就不做赘述了,需要的朋友移步到这篇文章:Sublime Text安装package control 安装插件方法:通过preferencs-- ...

  3. 设计模式——中介者模式/调停者模式(C++实现)

    #include <iostream> #include <string> using namespace std; class Colleague; class Mediat ...

  4. 通过Performance Log确定磁盘有性能问题?

    一些比较重要的performance counter: Counter Description LogicalDisk\ % Free Space 报告磁盘空间中未被分配的空间占逻辑卷中总可用空间的百 ...

  5. java中的字符串分割函数

    java中的split函数和js中的split函数不一样. Java中的我们可以利用split把字符串按照指定的分割符进行分割,然后返回字符串数组,下面是string.split的用法实例及注意事项: ...

  6. vue单页页面开发教程及注意事项

    如下图:   1.安装node.js webpack node -v 查看版本 webpack -v 2.安装脚手架 vue-cli npm install -g vue-cli 3. 在项目文件夹创 ...

  7. 使用枚举enum

    枚举可以把常量按照类别组织起来, 并且提供了构造方法和其他访问方法 用法: package com.nel.testPro.useage.use_enum; public enum Color imp ...

  8. Gauge----自动化测试工具--使用

    开始吧 1 下载安装gauge(根据官网教程 http://getgauge.io/documentation/user/current/)测试:gauge -v step01 磁盘上新建一个空目录- ...

  9. 基于hi-nginx的web开发(python篇)——路由装饰器

    现在,有了起步的基本认识,现在需要一个可以媲美flask或者bottle的简洁易用的路由功能,可以用装饰器写法任意映射 URLs 到代码. 这个,并不难.首先,来一个叫做hi的模块:hi.py: im ...

  10. iptables.sh 初始化防火墙配置

    #!/bin/bash iptables -F iptables -X iptables -Z iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT ...