gpt4 book ai didi

c++ - cpp 的未知编译器标志/参数

转载 作者:太空狗 更新时间:2023-10-29 23:49:33 28 4
gpt4 key购买 nike

我正在学习 pybind11 的教程.要编译示例,我应该使用以下行:

c++ -O3 -shared -std=c++11 -I <path-to-pybind11>/include `python-config --cflags --ldflags` example.cpp -o example.so

部分没看懂

`python-config --cflags --ldflags`

主要不是关于它的内容,更多的是关于:它在编译命令中有什么意义?它属于 -I 标志吗?那些“`”是怎么回事?

我查了c++/cpp的手册,没查到

最佳答案

反引号

当您在 shell 命令中看到反引号 `` 之间的东西时,这意味着它是一个单独的命令,在主命令之前运行,并且它写入标准输出的任何内容都在主命令中使用。

例如:

rm `cat file_to_delete.txt`

考虑 file_to_delete.txt 包含“sausage.png”cat file_to_delete.txt 部分首先运行并输出“sausage.png”然后将其插入到主命令中,如下所示:

rm sausage.png

你的例子做了什么

因此,在您的示例中,python-config --cflags --ldflags 是一个独立于 c++ 的命令,它输出的任何内容都将替换为原始命令。如果它输出 -Wall -Wextra -lmath 你的 c++ 命令将像这样结束:

c++ -O3 -shared -std=c++11 -I <path-to-pybind11>/include -Wall -Wextra -lmath example.cpp -o example.so

结论

因此,python-config 命令的要点是提供标志 gcc(c++ 实际上使用 gcc) 将需要用您的 Python 代码运行您的 C++ 代码。

关于c++ - cpp 的未知编译器标志/参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39892059/

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