无法在MacOS上使用C++中的“system”函数调用某些命令(它们在终端中手动工作)

56lgkhnf  于 2023-08-09  发布在  Mac
关注(0)|答案(1)|浏览(179)

我开始我的冒险与LaTeX和我想一个.tex文件转换为.pdf的C++程序。我可以通过在终端中输入pdflatex foo.tex来手动完成,它会给我foo.pdf。因此,我将foo.tex文件复制到我的程序的工作目录中,我想使用system("pdflatex foo.tex")函数来转换它,但程序给了我这个错误:sh: pdflatex: command not found。使用pwd函数会给我包含.tex文件的正确目录,所以它不可能找不到该文件。其他简单的命令如mkdir也可以工作。有人能帮忙吗?

mznpcxlj

mznpcxlj1#

这是因为system()派生的shell使用不同的PATH环境。尽管像@samcarter-is-at-topanswers-xyz说的那样,在system()调用中使用完整路径,否则您将需要修改这些默认PATH以包含工具的位置。参见https://apple.stackexchange.com/a/33246/311469

相关问题