第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

OSX 的 Cython 鏈接錯(cuò)誤

OSX 的 Cython 鏈接錯(cuò)誤

偶然的你 2021-12-29 19:53:00
我有一個(gè)與此SO 帖子非常相似的問題;但是,在那里實(shí)施了建議的修復(fù)程序后 - 我仍然收到以下錯(cuò)誤。我正在嘗試編譯由 Cython 生成的 C 文件。cython ConnectFour.pyx --embed我嘗試像這樣編譯我的 c 文件:gcc -I /usr/local/Cellar/python3/3.7.0/Frameworks/Python.framework/Versions/3.7/Headers -o ConnectFour ConnectFour.c但是我收到以下錯(cuò)誤:Undefined symbols for architecture x86_64:  "_PyBaseObject_Type", referenced from:      ___Pyx_InBases in ConnectFour-3c26d7.o  "_PyBytes_FromStringAndSize", referenced from:      ___pyx_pymod_exec_ConnectFour in ConnectFour-3c26d7.o      ___Pyx_InitStrings in ConnectFour-3c26d7.o  "_PyCFunction_NewEx", referenced from:      ___pyx_pymod_exec_ConnectFour in ConnectFour-3c26d7.o  "_PyCFunction_Type", referenced from:      ___Pyx_PyObject_CallOneArg in ConnectFour-3c26d7.o      ___Pyx_PyObject_CallNoArg in ConnectFour-3c26d7.o      ___Pyx_PyObject_Call2Args in ConnectFour-3c26d7.o      ___Pyx_PyCFunction_FastCall in ConnectFour-3c26d7.o      ___pyx_pf_11ConnectFour_36eval_heuristic_score in ConnectFour-3c26d7.o      ___pyx_pf_11ConnectFour_38list_valid_col_idxs in ConnectFour-3c26d7.o      ___pyx_pf_11ConnectFour_40deep_copy_board in ConnectFour-3c26d7.o      ...我是基于這個(gè)和這個(gè)SO 帖子出現(xiàn)的,我錯(cuò)過了一些圖書館鏈接?所以我嘗試了以下方法。gcc -I /usr/local/Cellar/python3/3.7.0/Frameworks/Python.framework/Versions/3.7/Headers -o ConnectFour ConnectFour.c -l/usr/local/Cellar/python3/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/libpython3.7.dylib現(xiàn)在我得到一個(gè) lib not found 錯(cuò)誤。ld:找不到 -l/usr/local/Cellar/python3/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/libpython3.7.dylib 的庫我在這里閱讀所有這些 SO 帖子(第一次處理 C)完全超出了我的深度,因此會逐步得到答案。我需要什么才能編譯然后運(yùn)行我的 C 文件而不會出錯(cuò)?我知道我的標(biāo)題位于,/usr/local/Cellar/python3/3.7.0/Frameworks/Python.framework/Versions/3.7/Headers庫位于/usr/local/Cellar/python3/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/libpython3.7.dylib我在 OSX 上,我使用 Homebrew 安裝了 Python。
查看完整描述

2 回答

?
MYYA

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊

所以我最終按照@ead 的建議更仔細(xì)地閱讀了這篇 SO 帖子,結(jié)果證明這是一個(gè)很大的幫助。為遇到類似問題的人編寫以下內(nèi)容。

運(yùn)行后,cython ConnectFour.pyx --embed我的目標(biāo)是將 .c 文件編譯為可執(zhí)行文件。這意味著 (1) 需要構(gòu)建 .o 目標(biāo)文件和 (2) 將 .o 目標(biāo)文件轉(zhuǎn)換為可運(yùn)行的可執(zhí)行文件,如下所示:./MyExecutable

步驟 1. 構(gòu)建 .o 目標(biāo)文件

我們需要運(yùn)行以下命令,但我遇到的問題是找出如何獲取我的標(biāo)志。

gcc -c hello.c -o hello.o <our cflags>

由于我是通過 Homebrew 安裝 Python 的,因此 Python 及其頭文件位于以下目錄中。

/usr/local/Cellar/python3/3.7.0/Frameworks/Python.framework/Versions/3.7/bin/

為了為我生成 cflags - 我必須運(yùn)行以下命令。請注意 --cflags 標(biāo)志。該命令為我的 Python 3 安裝運(yùn)行配置實(shí)用程序,該實(shí)用程序安裝在奇怪的目錄中(因?yàn)槲彝ㄟ^ Homebrew 安裝了 Python)。

/usr/local/Cellar/python3/3.7.0/Frameworks/Python.framework/Versions/3.7/bin/python3.7-config--cflags

下面是它為我生成的標(biāo)志的片段。

-I/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/include/python3.7m -I/usr/local.......etc etc.

使用標(biāo)志我運(yùn)行以下來生成我的目標(biāo)文件。

gcc -c ConnectFour.c -o ConnectFour.o -I/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/include/python3.7m -I/...etc etc.

步驟 2. 將目標(biāo)文件轉(zhuǎn)換為可執(zhí)行文件

為了生成可執(zhí)行文件,我們需要運(yùn)行以下命令。

gcc main.o hello.o -o prog <our ldflags>

為了生成 ldflags,這次我需要運(yùn)行以下命令。我們再次使用配置實(shí)用程序,但這次使用--ldflags。

/usr/local/Cellar/python3/3.7.0/Frameworks/Python.framework/Versions/3.7/bin/python3.7-config --ldflags

這為我生成了以下標(biāo)志。

-L/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin -lpython3.7m ...etc. etc.

使用這些標(biāo)志,我運(yùn)行以下命令來生成我的可執(zhí)行文件。

gcc ConnectFour.o -o ConnectFour -L/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin -lpython3.7m ...etc. etc.

完畢!一個(gè)可執(zhí)行文件彈出,我像運(yùn)行任何其他 C 可執(zhí)行文件一樣運(yùn)行它。

特別感謝@ead 為我指明了正確的方向。


查看完整回答
反對 回復(fù) 2021-12-29
?
慕雪6442864

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

嘗試跑步

gcc -I /usr/local/Cellar/python3/3.7.0/Frameworks/Python.framework/Versions/3.7/Headers -o ConnectFour ConnectFour.c -L/usr/local/Cellar/python3/3.7.0/Frameworks/Python.framework/Versions/3.7 -lpython3.7

-L 標(biāo)志將該目錄添加到搜索路徑,然后使用 -l 進(jìn)行鏈接(因?yàn)?-l 似乎不接受絕對路徑),在 Linux 上,使用 -l 時(shí)至少省略了 lib 前綴和擴(kuò)展名,我從來沒有雖然使用了 MacOSX,但如果不起作用,請嘗試不同的組合。


查看完整回答
反對 回復(fù) 2021-12-29
  • 2 回答
  • 0 關(guān)注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號