在执行一个使用std::vector
和powershell
的简单程序时,我遇到了一些奇怪的行为
#include <vector>
#include <iostream>
int main() {
auto v = std::vector<int>{};
v.push_back(0);
std::cout << "Hello, World!\n";
return 0;
}
g++ -v
返回gcc version 11.2.0 (Rev10, Built by MSYS2 project)
然后,我用g++ main.cpp -o main.exe
编译程序,得到一个输出可执行文件。
当我用powershell
运行.\main.exe
时,我没有得到控制台输出,但是当我用git bash
运行相同的可执行文件时,我得到了Hello, World!
打印到控制台。
我测试了Powershell 7
和Windows PowerShell
。
当我删除必须与std::vector
做的两行时,它在两个shell中都能工作。
当我从'cmd'运行executbale时,我得到以下错误消息
1条答案
按热度按时间zfycwa2u1#
这发生在我身上是因为我在Windows系统中安装了多个gcc示例,并且它们都在
PATH
中。这混淆了动态加载器。删除一个,使得PATH
中的gccONLY ON示例可用