要將Python解釋器嵌入到應用程序中,找到傳遞給編譯器(和鏈接器)的正確標志并不一定是件小事,特別是因為Python需要加載作為C動態擴展(dynamic extensions, C dynamic extensions)實現的庫模塊。因此啊,你必須正確地找到動態擴展庫文件.so 或者.o 文件吧。
- 查找到編譯鏈接的環境
直接運行 pythonx.y-config 命令即可。例如本系統是 python3.7,所以運行的是 python3.7-config
1.1 查找編譯的標志
這些都可以放到 INCLUDE 中
$python3.7-config --cflags
-I/anaconda3/include/python3.7m -I/anaconda3/include/python3.7m -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/anaconda3/include -arch x86_64 -I/anaconda3/include -arch x86_64
1.2 查找鏈接的標志
這個就是鏈接所需要的庫,QT 中 pro 增加到 LIBS中
$python3.7-config --ldflags
-L/anaconda3/lib/python3.7/config-3.7m-darwin -lpython3.7m -ldl -framework CoreFoundation -Wl,-stack_size,1000000 -framework CoreFoundation
注意:
為了避免幾個Python安裝之間的混淆(特別是在系統Python和您自己編譯的Python之間),建議使用絕對路徑的pythonX.Y-config,如下所示。
?
2. 使用sysconfig.get_makefile_filename()查找它的位置和編譯選項
在本例中,sysconfig模塊是一個有用的工具,可以通過編程提取您希望組合在一起的配置值。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
