通过窗口从C++代码运行 WSL 命令
Running WSL command from C++ code over windows
我在窗口中运行C ++代码,我想从中运行wsl上的命令。
以下是命令:
ShellExecuteA(NULL, "open", "cmd", "bash -c "rm -f /tmp/xyz.log"" , NULL, SW_SHOW);
和
system("start "bash -c "rm -f /tmp/xyz.log""");
我尝试了上述两种方法,但它不起作用。尽管这些命令适用于 WSL 命令提示符。
我试图复制这个并立即遇到这个问题。在(相当(有点混乱之后,我找到了这个链接,并意识到我的测试项目的目标是 x86 而不是 x64 .咄......
wsl.exe
和bash.exe
是64位文件,存储在c:WindowsSystem32
中。如果您尝试从 x86 应用程序运行它们,它们似乎丢失了。这是因为 Windows 向 32 位应用程序显示不同的32 位特定c:WindowsSystem32
文件夹。64 位 System32 文件夹将显示在C:WindowsSysnative
下。
简单的解决方案是将目标更改为 x64。一旦完成,即使
system("wsl ls -la");
或
system("bash -c ls -la");
只是工作。
对于 x86 应用程序,解决方案是使用Sysnative
中的绝对路径,例如:
system("c:/windows/sysnative/bash -c ls -la");
或
system("c:/windows/sysnative/wsl -c ls -la");
相关文章:
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 代码在main()中运行,但在函数中出现错误
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 如何在运行中期切换GTK CSS style_context
- 如何在MS Visual Studio 2019中运行QT UI
- 如何通过cpp程序运行shell脚本
- IPC使用多个管道和分支进程来运行Python程序
- 删除指向指针的指针是运行时错误吗
- 如何用参数值调用函数(仅在运行时已知)
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- c++中的指针和运行时错误
- 在C应用程序中运行C++(带有STL)函数
- 在WSL:configure_file上对config_file的每次调用都失败:配置文件时出现问题
- 运行程序时出现问题
- 通过窗口从C++代码运行 WSL 命令