簡體   English   中英

clang:錯誤:未知參數:'-mno-fused-madd'[-Wunused-command-line-argument-hard-error-in-future]

[英]clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]

嘗試在Mavericks OS中安裝Scrapy時出現以下錯誤。

我有命令行工具和X11安裝我真的不知道發生了什么,我沒有發現同樣的錯誤瀏覽網頁。 我認為這可能與Xcode 5.1中的一些變化有關

謝謝你的回答!

這是命令輸出的一部分:

$ pip install scrapy


.
.
.
.

Downloading/unpacking cryptography>=0.2.1 (from pyOpenSSL->scrapy)
  Downloading cryptography-0.3.tar.gz (208kB): 208kB downloaded
  Running setup.py egg_info for package cryptography
    OS/X: confusion between 'cc' versus 'gcc' (see issue 123)
    will not use '__thread' in the C code
    clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]
    clang: note: this will be a hard error (cannot be downgraded to a warning) in the future
    Traceback (most recent call last):
      File "<string>", line 16, in <module>
      File "/Users/agonzamart/.virtualenvs/Parser/build/cryptography/setup.py", line 156, in <module>
        "test": PyTest,
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 112, in setup
        _setup_distribution = dist = klass(attrs)
      File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/dist.py", line 265, in __init__
        self.fetch_build_eggs(attrs.pop('setup_requires'))
      File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/dist.py", line 289, in fetch_build_eggs
        parse_requirements(requires), installer=self.fetch_build_egg
      File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/pkg_resources.py", line 618, in resolve
        dist = best[req.key] = env.best_match(req, self, installer)
      File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/pkg_resources.py", line 862, in best_match
        return self.obtain(req, installer) # try and download/install
      File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/pkg_resources.py", line 874, in obtain
        return installer(requirement)
      File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/dist.py", line 339, in fetch_build_egg
        return cmd.easy_install(req)
      File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 623, in easy_install
        return self.install_item(spec, dist.location, tmpdir, deps)
      File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 653, in install_item
        dists = self.install_eggs(spec, download, tmpdir)
      File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 849, in install_eggs
        return self.build_and_install(setup_script, setup_base)
      File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1130, in build_and_install
        self.run_setup(setup_script, setup_base, args)
      File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1118, in run_setup
        raise DistutilsError("Setup script exited with %s" % (v.args[0],))
    distutils.errors.DistutilsError: Setup script exited with error: command 'cc' failed with exit status 1
    Complete output from command python setup.py egg_info:
    OS/X: confusion between 'cc' versus 'gcc' (see issue 123)

will not use '__thread' in the C code

clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]

clang: note: this will be a hard error (cannot be downgraded to a warning) in the future

Traceback (most recent call last):

  File "<string>", line 16, in <module>

  File "/Users/agonzamart/.virtualenvs/Parser/build/cryptography/setup.py", line 156, in <module>

    "test": PyTest,

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 112, in setup

    _setup_distribution = dist = klass(attrs)

  File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/dist.py", line 265, in __init__

    self.fetch_build_eggs(attrs.pop('setup_requires'))

  File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/dist.py", line 289, in fetch_build_eggs

    parse_requirements(requires), installer=self.fetch_build_egg

  File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/pkg_resources.py", line 618, in resolve

    dist = best[req.key] = env.best_match(req, self, installer)

  File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/pkg_resources.py", line 862, in best_match

    return self.obtain(req, installer) # try and download/install

  File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/pkg_resources.py", line 874, in obtain

    return installer(requirement)

  File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/dist.py", line 339, in fetch_build_egg

    return cmd.easy_install(req)

  File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 623, in easy_install

    return self.install_item(spec, dist.location, tmpdir, deps)

  File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 653, in install_item

    dists = self.install_eggs(spec, download, tmpdir)

  File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 849, in install_eggs

    return self.build_and_install(setup_script, setup_base)

  File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1130, in build_and_install

    self.run_setup(setup_script, setup_base, args)

  File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1118, in run_setup

    raise DistutilsError("Setup script exited with %s" % (v.args[0],))

distutils.errors.DistutilsError: Setup script exited with error: command 'cc' failed with exit status 1

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /Users/agonzamart/.virtualenvs/Parser/build/cryptography

這是由於Xcode 5.1中的clang默認值發生了變化,Apple沒有注意到它會破壞使用系統Python的擴展模塊構建。 一種解決方法是首先定義以下環境變量:

export CFLAGS=-Qunused-arguments
export CPPFLAGS=-Qunused-arguments

更新[2014-05-16]:正如預期的那樣,Apple已經使用OS X 10.9.3更新的系統Pythons(2.7,2.6和2.5)解決了這個問題,因此在使用最新的Mavericks和Xcode 5.1+時不再需要解決方法Xcode 5.1+ 但是,截至目前,如果您在那里使用Xcode 5.1+OS X 10.8.x (Mountain Lion,目前為10.8.5)仍然需要解決方法。

最新版本的clang 提升到了曾經是警告的錯誤級別 要切換回來,您可以在運行install命令之前內聯刪除此行為

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install <your package>

這應該可行,但萬一出現問題,這里有更多信息: clang錯誤:未知參數:' - mno-fused-madd'(python包安裝失敗)

實際上Ned和Dorian的回答是相互聯系的:

  • 從_sysconfigdata.py中刪除-mno-fused-madd可防止將標志傳遞給編譯器。
  • 設置環境變量會告訴編譯器忽略標志,但仍然會傳遞標志。 這可能會在未來的Xcode版本中出現問題。

我只是花了DAYS在各種包中解決這個問題,並且作為一個Python新手,無法弄清楚標志的來源。 補充Dorian的答案,Xcode 5只支持Apple的clang編譯器而不支持GCC,但是Mavericks附帶的Python發行版似乎是用GCC構建的。 _sysconfigdata.py文件包含用於構建Python解釋器的標志,這些標志由Python構建系統由各種項目使用。 因此,使用Python構建系統的任何項目都使用與已安裝的編譯器不兼容的標志。

我使用Homebrew安裝了python(將它放入/ usr / local / Cellar並在/ usr / local / Cellar中使用了我的apple-gcc42安裝),發現安裝的_sysconfigdata.py包含合理的標志。 但是,它仍在使用GCC。 您可能希望使用clang自己從源代碼構建Python。 我認為編輯_sysconfigdata.py中的標志是避免重復插入此問題的最佳方法。

同時刪除_sysconfigdata.pyc和_sysconfigdata.pyo。

以下主題還包括這一點:

clang錯誤:未知參數:'-mno-fused-madd'(python包安裝失敗) https://discussions.apple.com/thread/5465305

暫無
暫無

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

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