gpt4 book ai didi

c++ - 使用 system() 跨平台。使用 cygwin 和 g++ 编译

转载 作者:太空狗 更新时间:2023-10-29 23:17:16 25 4
gpt4 key购买 nike

我在 Windows 7 下使用 cygwin 和 g++ 来编译我的项目。我已经制作了一个 makefile 来编译 Ubuntu 下的项目。到目前为止,一切正常。

一个函数调用 Libre Office 来转换一些文件。为此,我将命令字符串传递给 system()

症状

当我使用用 cygwin 生成的可执行文件时,出现错误:

sh: C:\..\LibreOffice 3.6\program\soffice --headless --convert-to png:'draw_png_Export' add1.fodg : command not found

令我恼火的是,命令似乎传递给了 sh 而不是 cmd

如何确保为 Windows 构建的可执行文件不使用 sh

最佳答案

我认为你有两个选择。

首先,坚持使用 system() 使用的 sh 并使用 POSIX 格式的 LibreOffice 路径。

C:\..\LibreOffice 3.6\program\soffice

会变成

/cygdrive/c/../LibreOffice 3.6/program/soffice

您也可以为此使用 cygpath 实用程序。

另一种选择是通过 cmd 调用 LibreOffice:

cmd /c C:\..\LibreOffice 3.6\program\soffice args...

关于c++ - 使用 system() 跨平台。使用 cygwin 和 g++ 编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18915883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com