要將Python解釋器嵌入到應(yīng)用程序中,找到傳遞給編譯器(和鏈接器)的正確標(biāo)志并不一定是件小事,特別是因?yàn)镻ython需要加載作為C動(dòng)態(tài)擴(kuò)展(dynamic extensions, C dynamic extensions)實(shí)現(xiàn)的庫(kù)模塊。因此啊,你必須正確地找到動(dòng)態(tài)擴(kuò)展庫(kù)文件.so 或者.o 文件吧。
- 查找到編譯鏈接的環(huán)境
直接運(yùn)行 pythonx.y-config 命令即可。例如本系統(tǒng)是 python3.7,所以運(yùn)行的是 python3.7-config
1.1 查找編譯的標(biāo)志
這些都可以放到 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 查找鏈接的標(biāo)志
這個(gè)就是鏈接所需要的庫(kù),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
注意:
為了避免幾個(gè)Python安裝之間的混淆(特別是在系統(tǒng)Python和您自己編譯的Python之間),建議使用絕對(duì)路徑的pythonX.Y-config,如下所示。
?
2. 使用sysconfig.get_makefile_filename()查找它的位置和編譯選項(xiàng)
在本例中,sysconfig模塊是一個(gè)有用的工具,可以通過(guò)編程提取您希望組合在一起的配置值。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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