【发布时间】:2026-02-02 02:10:01
【问题描述】:
我想从另一个脚本调用已编译的 C++ 可执行文件,并且还需要可执行文件返回的值。使用 system() 不会返回函数输出,并且无法找到任何其他替代方法。这是否可能无需写入文件并从中解析?
我正在使用 2 个不同的库,并想使用另一个库中的一个。所以,我想通过创建可执行文件并从另一个库的脚本中调用它来做到这一点。我还尝试通过在 make 期间添加另一个库的头文件目录来将两者一起编译,但收到此错误 ImportError: /.conda/envs/myenv/lib/python3.6/site-packages/hnswlib.cpython-36m-x86_64-linux-gnu.so: undefined symbol: gzopen64,我无法理解如何修复。
【问题讨论】:
-
查看
popen是否对您可用。 Here's a good example -
您可以使用 fork() 创建一个子进程,然后使用 exec 系列调用可执行 bin。 pipe() 可用于两个进程之间的通信。还要 waitpid() 等待子进程完成并检查返回的状态