如何最好地将C++/Cython项目编译成可执行文件
How to best compile C++/Cython project into an executable?
我有一个项目,里面有一堆C++和Python/Cython文件。到目前为止,我主要开发了C++部分,并使用 qmake 将其编译为静态库。一些方法使用 boost::p ython 公开,并从.py文件执行。
我现在想将整个事情编译成一个独立的可执行文件。
我现在的问题是:最好的方法是什么?我尝试切换到Cython,编译python文件并链接库。但是似乎没有直接的方法使用distutils/setup.py编译可执行文件,只有共享库。
有没有办法轻松地将.cpp和.pyx文件一次编译成可执行文件?
这样我就可以摆脱很多 boost::p ython 包装器的东西并获得 c++/python 的整洁组合,而无需导入共享库并使用 pyinstaller 打包整个东西?
你应该看看:
- 适用于 Windows/Linux 的 pyinstaller(或 py2exe)
- 适用于 OSX 的 py2app
由于 python 是您的入口点,因此您将能够将独立的解释器、环境和资源位置捆绑到应用程序/exe/二进制文件中。它会将您的所有库模块收集到其独立的站点包中
如果您不使用任何普通的纯 py 文件并且只有 cython 文件,那么也可以将解释器嵌入到其中一个文件中作为入口点,并在 cython 中使用 --embed 标志:http://wiki.cython.org/EmbeddingCython请注意,这是一种类似于前面提到的打包选项的"冻结"方法,但并没有花费额外的时间来构建一个独立的环境。
相关文章:
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 使用外部SDK工具链文件在VisualStudio上生成项目编译错误
- 示例C++项目编译中的警告
- 使用 raylib 静态库进行项目编译
- 如何使用我构建的库,而不会从源代码出错,但不为我自己的项目编译?
- C++项目编译强制使用 /clr 选项,尽管在没有公共语言运行时支持的情况下执行它
- 我可以在将项目编译为静态库(未定义的引用)时在代码中使用 QImage 吗?
- 旧项目编译的未定义引用
- Codelite不使用全局编译设置或项目编译设置
- x264项目编译
- 使用 Boost 单元测试进行 G++ 项目编译
- 项目编译时无法使用 gvim
- 强制将特定文件编译为Objective-C/文件类型,但将整个项目编译为Objective C++
- Eclipse显示错误,但项目编译并执行
- 如何最好地将C++/Cython项目编译成可执行文件
- CMake项目编译精细的SHARED库,但不使用STATIC库
- 如何在实践中解决项目编译中链接库的顺序问题
- Cef项目编译链接error2001
- 我的项目编译在vs2008没有一个单一的问题,但不是在2010年
- visual studio 2010 - c++项目编译和链接