c++ - 从 Visual Studio 定位 linux 时的 gcc 编译标志
问题描述
我正在 Visual Studio 2019(版本 16.5.4)上开发 c++ 代码,对于构建,我的目标是带有 gcc 7.5 的 Linux Ubuntu 18.04 - 通过 ssh 在远程机器上和通过 WSL2 在我的本地机器上。
在这两种情况下我都有同样的问题:使用时std::async
,我必须将编译标志添加-lpthread
到 gcc 的输入中,以便程序编译,否则我得到
对 pthread_create 的未定义引用
此外,标志必须在 cpp 文件名之后,即g++ -lpthread xxx.cpp
在 gcc 7.5 中会失败,但g++ xxx.cpp -lpthread
可以正常工作。
到目前为止一切顺利,但问题是:我无法通过 Visual Studio 成功构建:当我在项目的 C/C++ 属性的附加选项下添加 -lpthread 标志时,似乎没有任何效果 -编译仍然失败。此外,由于我没有看到将标志添加到完整的构建命令行(它是只读的),我无法查看标志是否真的被发送,并且以正确的顺序(即在cpp 文件名)。因为我看不到任何手动编辑构建命令行的方法,所以我没有想法......有人吗?
谢谢。
解决方案
推荐阅读
- python - 像 pandas DataFrame resample 一样的 numpy 矢量化重采样
- batch-file - 如果已经存在,则使用批处理从主机文件中删除行
- terraform - Terraform:在 azure policy 倡议中将变量作为参数传递
- reactjs - React hook - 我可以在函数(钩子)之外使用公共变量还是它是反模式?
- java - 在 spring-boot 中使用 web-client 解析 text/html 对 xml 的响应
- html - 修复移动设备上的光标效果
- kubernetes - 在 Kubernetes 中使用多个自定义指标适配器
- javafx - 将 JFX8 转换为 JFX15 中的问题
- sql - Postgres 使用交叉表根据公共字段将行转换为列
- python - 退出函数不适用于线程方法