簡體   English   中英

我無法將MacPorts的/opt/local/include/ncurses.h導入到我的Swift項目中。 它與macos SDK / usr / include / curses.h沖突。 有什么提示嗎?

[英]I can't import MacPorts' /opt/local/include/ncurses.h into my Swift project. It conflicts with macos SDK /usr/include/ curses.h. Any hint?

編輯:對於這樣的詳細和誠實的問題得到否定? 有時我並沒有真正得到堆棧溢出。 真。


嗨,我正在嘗試使用Swift 5(Xcode 10.2.1)和ncurses的現代表達方式創建PoC(在這種情況下,是MacPorts的一個版本,一些6.1.2018XXXX版本)

到目前為止,我的Poc還沒有代碼,因為在開始向.swift文件中添加任何有意義的行之前,我的問題開始了。

到目前為止,我已完成以下操作:

1.-我已經安裝了可以正常工作的MacPorts ncurses庫:這意味着“ sudo port install htop”可以毫無問題地構建“ htop”應用程序,從而證明我的ncurses庫已正確安裝(.h文件似乎已部署在內部/ opt / local / include /目錄)

2.-我創建了一個空的CONSOLE APPLICATION swift程序(使用Xcode 10.2.1自己的向導)。 只需單擊4次鼠標,您就會得到一些“ Hello world”愚蠢的main.swift文件。

3.-我創建一個橋接頭文件來導入我的.h文件(在本例中為ncurses.h)。 此橋接標頭的內容將/應該是這樣的:

#import "/opt/local/include/ncurses.h"

4.-我編譯並運行了愚蠢的空的“ hello world”快速程序,但遇到了一些“預期”錯誤。 像這樣的內容:“ Darwin / SDK curses.h符號xxxxxxxxx也已在您的/opt/local/ncurses.h文件中定義。釋放出來。” (這不是我得到的字面上的錯誤,您只是明白了)

所以我的問題是:

我可以在某處從我的XCode項目定義中禁用/刪除Darwin / internal / MacOs SDK curses.h,以便我的橋接頭僅看到我的2(n)curses.h文件的一個副本(應該是我的macports之一)嗎?

我已經嘗試了另一個線程中描述的許多事情,但是沒有運氣: 如何禁用“ curses.h”標頭(Xcode 6.3 OSX Yosemite中“ stdio.h的一部分”),以避免函數聲明沖突

特別是“啟用模塊”選項,無論您將其設置為什么值,似乎都無濟於事。

順便說一句:我知道什么時候可以解決此.h標頭問題,我可能需要在Xcode的“構建階段”(?)選項卡中添加一些附加的-lib鏈接選項,但是當那一刻我將嘗試管理自己到達。

到目前為止,我一直擔心“我不會從Xcode項目中刪除Apple Internal Macos SDK的curses支持/文件”。 可以實現嗎?

PS:我使用Mojave 10.4.4沒問題

盡管嘗試通過Swift Package Manager使用ncurses,但我遇到了同樣的問題。 盡管我一直在積極地尋找解決方案,但到目前為止,我一直沒有成功。 以防萬一,請檢查我的問題: Swift軟件包管理器無法編譯通過Homebrew安裝的ncurses

這個答案應該為您提供使其正常工作所需的所有信息:) https://stackoverflow.com/a/56728436/554972

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM