clang++ 链接问题 和 VS Code
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的更多相关文章
- linux下Clang和gcc的区别
Clang 比 GCC 编译器的优势: 编译速度更快 编译产出更小 出错提示更友 好,比如 clang 在编译过程可以直接指出相对简单的出错位置以及它 “ 认为 ” 正确的方式 . 内置有静态分析工具 ...
- [Core] .NET Core & VS Code 之路(1) Hello World
目录 相关链接 dotnet命令 VS Code Hello World Web Hello World 总结 其实本篇上个月已经写好, 只是 但是,不忘初心方得始终 相关链接 Learn .NET ...
- VS code 中的各种变量 ${file},${fileBasename}
VS code 中的各种变量 ${file},${fileBasename} 2017年08月24日 11:14:07 bailsong 阅读数:7108 from: https://blog. ...
- Mac OS X 操作系统下IntelliJ IDEA激活码(Activation code)破解
Mac OS X 操作系统(版本:10.13.6)下载并安装IntelliJ IDEA: Version: 2018.2.4 Download IntelliJ IDEA 下一步对IntelliJ I ...
- Cross-compilation using Clang
Introduction This document will guide you in choosing the right Clang options for cross-compiling yo ...
- C++链接与装载
1..obj文件的内部结构 2.映射到进程虚拟空间 3.链接的原理 C++ Code 123456789 1.未解决符号表:提供了所有在该编译单元里引用但是定义并不在本编译单元里的符号及其 ...
- Building clang on RedHat
http://btorpey.github.io/blog/2015/01/02/building-clang/ clang is a great compiler, with a boatload ...
- 【转载】Visual Studio Code 构建 C/C++ 开发环境
https://www.cnblogs.com/XieSir/articles/8288051.html 1. 安装 MinGW Distro / MinGW / GNU GCC 中的任何一款,( W ...
- 1 visual studio code 配置C++开发环境 (windows 开发环境)
0 引言 最近帮GF(不幸变成ex了)配置C++开发环境,一开始想给她装个visual studio13完事,但是一想到自己安装以及使用时的诸多麻烦,就有点退却,觉得没有这个必要.正好了解到vscod ...
随机推荐
- linux系统文件扩展名介绍
1.源码tar.tar.gz .tgz.zip.tar.bz 表示压缩文件,创建命令等 2.sh表示shell脚本文件,通过shell语言开发的程序. 3.pl 表示perl语言文件,通过perl语言 ...
- 同一台电脑同时装Oracle客户端和服务端
1.如果之前安装过Oracle,Win+R输入Services.msc,关掉以Oracle开头的服务(卸载Oracle服务端和客户端步骤一样,见另外一篇帖子) 2.Win+R输入regedit打开注册 ...
- C# Redis实战(一)
一.初步准备 Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库.Redis的出现,很大程度补偿了memcached这类key/va ...
- Redis学习日记-01
Redis是什么东东? Redis是用C语言开发的Key-Value数据库,说是数据库,其实他是NoSql(非关系型数据库). 这里顺便说一下Sql(关系型数据库,如MySql,Oracle等)和No ...
- python爬微信公众号前10篇历史文章(4)-正则表达式RegularExpressionPattern
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子串等. Pytho ...
- 用IDEA生成javadoc文档
用IDEA生成javadoc文档 打开相应的选项面板 设置 -encoding是java代码编码,-charset是对生成文档所用的编码.-windowtitle就是对应html的<title& ...
- Java8 中 ConcurrentHashMap工作原理的要点分析
简介: 本文主要介绍Java8中的并发容器ConcurrentHashMap的工作原理,和其它文章不同的是,本文重点分析了不同线程的各类并发操作如get,put,remove之间是如何同步的,以及这些 ...
- gulp和webpack之间的区别
webpack 是一个打包工具 webpack 是用来把你的源文件打包成一个文件的,你做了一系列配置以后,可以用一句 webpack 实现打包的功能. webpack的作用是从若干个文件开始顺藤摸瓜, ...
- Algorithm --> n位数去掉k位后找最小数
去掉K位求取最小数 一个n位的数,去掉其中的k位,怎样使留下来的(n-k)位数按原来的前后顺序组成的数最小 例如 8314925去掉4个数,留下125最小,注意有前后顺序要求,要是没有顺序当然是123 ...
- 计时器setInterval()-慕课网
计时器setInterval() 在执行时,从载入页面后每隔指定的时间执行代码. 语法: setInterval(代码,交互时间); 参数说明: 1. 代码:要调用的函数或要执行的代码串. 2. 交互 ...