Code::Blocks: Fortran EXECUTE_COMMAND_LINE 指定的路径不存在

Code::Blocks: Fortran EXECUTE_COMMAND_LINE The specified path does not exist

我正在尝试在 Code::Blocks 中使用 EXECUTE_COMMAND_LINE (Fortran),通过带有 Windows 命令提示符的快捷方式启动程序。我已经多次检查路径和语法,一切都是正确的,但是每当我编译和 运行 代码时,当脚本到达此命令时,我收到一条错误消息,提示“指定的路径不存在。检查路径,然后重试。”。 更奇特的是,直接在命令提示符中使用 EXECUTE_COMMAND_LINE 中完全相同的命令成功启动应用程序,没有任何问题。 我使用的命令如下:

CALL EXECUTE_COMMAND_LINE("start C:\Users\dimpa\Desktop\Giannako\Optimization\VBA\SLDA.lnk")

我 运行 Windows 10,Code::Blocks 20.03 并且有 Fortran 的 MinGW 编译器。

也使用 SYSTEM 得到完全相同的结果。另外,如果它对帮助我弄清楚发生了什么有任何用处,这个命令工作得很好:

CALL EXECUTE_COMMAND_LINE("start C:\Users\dimpa\Desktop\Giannako\Optimization\VBA")

正在将文件夹 VBA 打开到我的文件资源管理器。问题似乎与打开应用程序的快捷方式有关。此外,打开位于 dimpa\Appdata 文件夹(原始 .exe,不是快捷方式)中的文件似乎甚至可以通过 IDE 工作,其中程序文件中的任何内容都无法访问。

提前致谢。

干杯,经过无数次实验,我似乎找到了解决方法。

问题是围绕在使用的快捷方式的原始程序的路径中包含空格。显然编译器不喜欢执行快捷方式,这些快捷方式最初可能在初始路径中不包含空格,但是当重定向到原始程序时可以 运行 进入各种东西。

我试图执行的快捷方式包含一个通往程序文件的路径,并打开了一个要在上述程序中执行的附加插件(“/m”)。在意识到尝试 运行 具有 150 个字符串长度目标的快捷方式可能会使事情变得复杂之后,我直接将快捷方式的目标输入到 Windows cmd 中,它工作得很好并且更容易剖析并进行检查以正确编写代码:

CALL SYSTEM(""Full Path to Program" "/m" "Full Path to Addon"")

希望这对面临类似问题的人有所帮助!