是否有任何平台独立的方式来获取python安装的libpython的路径,用作cmake参数?sysconfig.get_config_var给出了一些部分,但是没有一致的方法可以使这个工作.
在OSX上:
sysconfig.get_config_var('LIBDIR') 返回libpython2.7.dylib所在的目录(/usr/local/opt/python/Frameworks/Python.framework/Versions/2.7/lib)编辑:当sysconfig报告符号链接时以及报告实际路径时,似乎存在一些差异.LIBDIR确实包含libpython.2.7.dylib,但我刚注意到的是这是/usr/local/Cellar/python/2.7.13_1/Frameworks/Python.framework/Versions/2.7/Python的符号链接.
INSTSONAME 指向Python.framework/Versions/2.7/Python,该路径的基本名称,但没有变量我可以找到指向该路径的父部分的点.
在Ubuntu上:
sysconfig.get_config_var('INSTSONAME') 给我一个库的名称(libpython2.7.so.1.0).LIBDIR 仅返回/ usr/libCMake python 模块:FindPythonLibs和FindPythonInterp。
如果这些对您不起作用,只需在调用 cmake 时设置下一个变量-DPYTHON_EXECUTABLE:FILEPATH,-DPYTHON_LIBRARY:FILEPATH并且-DPYTHON_INCLUDE_DIR:FILEPAT有关更多信息,请参见此处。
例子:
cmake .. -G "Sublime Text 2 - Ninja"
-DCMAKE_BUILD_TYPE=Release
-DPYTHON_EXECUTABLE:FILEPATH=d:\virtualenvs\python362_32
-DPYTHON_LIBRARY:FILEPATH=d:\virtualenvs\python362_32\libs\python36.lib
-DPYTHON_INCLUDE_DIR:FILEPAT=d:\virtualenvs\python362_32\include
Run Code Online (Sandbox Code Playgroud)