首页 > 解决方案 > 从 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 文件名)。因为我看不到任何手动编辑构建命令行的方法,所以我没有想法......有人吗?

谢谢。

标签: c++visual-studiogcc

解决方案


推荐阅读