質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

MinGW

MinGW(ミン・ジー・ダブリュー)は GNUツールチェーンのWindows移植版です。 ランタイムライブラリと開発ツールで構成されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

9383閲覧

mingwでのリンクエラーについて

kohekoh

総合スコア140

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

MinGW

MinGW(ミン・ジー・ダブリュー)は GNUツールチェーンのWindows移植版です。 ランタイムライブラリと開発ツールで構成されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2017/07/12 03:44

編集2017/07/12 04:57

cythonを動かしたいと思って
mingwをインストールしたのですが
そこでつまってしまいました

開発環境はanacondaで 、windows10です
python3系で動かせればうれしいです

pythonでcythonのsetup.pyを実行しようとすると

python

1python setup.py build_ext --inplace 2 3------------------------------------------------------- 4実行結果 5 6running build_ext 7skipping 'cythonfn.c' Cython extension (up-to-date) 8building 'calculate' extension 9C:\MinGW\bin\gcc.exe -mdll -O -Wall -DMS_WIN64 "-IC:\Users\ユーザ名\AppData\Local\conda\conda\envs\anaconda\include" "-IC:\Users\ユーザ名\AppData\Local\conda\conda\envs\anaconda\include" -c cythonfn.c -o build\temp.win-amd64-3.6\Release\cythonfn.o 10In file included from C:\Users\ユーザ名\AppData\Local\conda\conda\envs\anaconda\include/Python.h:65:0, 11 from cythonfn.c:4: 12C:\Users\ユーザ名\AppData\Local\conda\conda\envs\anaconda\include/pytime.h:112:5: warning: 'struct timeval' declared inside parameter list 13 _PyTime_round_t round); 14 ^ 15C:\Users\ユーザ名\AppData\Local\conda\conda\envs\anaconda\include/pytime.h:112:5: warning: its scope is only this definition or declaration, which is probably not what you want 16C:\Users\ユーザ名\AppData\Local\conda\conda\envs\anaconda\include/pytime.h:117:5: warning: 'struct timeval' declared inside parameter list 17 _PyTime_round_t round); 18 ^ 19writing build\temp.win-amd64-3.6\Release\calculate.cp36-win_amd64.def 20C:\MinGW\bin\gcc.exe -shared -s build\temp.win-amd64-3.6\Release\cythonfn.o build\temp.win-amd64-3.6\Release\calculate.cp36-win_amd64.def "-LC:\Users\ユーザ名\AppData\Local\conda\conda\envs\anaconda\libs" "-LC:\Users\ユーザ名\AppData\Local\conda\conda\envs\anaconda\PCbuild\amd64" -lpython36 -lmsvcr140 -o "C:\Users\ユーザ名\Dropbox\prg\make_tips\calculate.cp36-win_amd64.pyd" 21c:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../../mingw32/bin/ld.exe: C:\Users\ユーザ名\AppData\Local\conda\conda\envs\anaconda\libs/python36.lib(python36.dll): Recognised but unhandled machine type (0x8664) in Import Library Format archive 22C:\Users\ユーザ名\AppData\Local\conda\conda\envs\anaconda\libs/python36.lib: error adding symbols: File format not recognized 23collect2.exe: error: ld returned 1 exit status 24error: command 'C:\\MinGW\\bin\\gcc.exe' failed with exit status 1 25

また、動かしたいプログラムを以下に示します

python

1setup.py 2 3# -*- coding: utf-8 -*- 4 5from distutils.core import setup 6from distutils.extension import Extension 7from Cython.Distutils import build_ext 8 9# for notes on compiler flags e.g. using 10# export CFLAGS=-O2 11# so gcc has -O2 passed (even though it doesn't make the code faster!) 12# http://docs.python.org/install/index.html 13 14ext_modules = [ 15 Extension( "calculate", ["cythonfn.pyx"] ), 16] 17 18setup( 19 name = "sample calculate app" , 20 cmdclass={'build_ext': build_ext }, 21 ext_modules = ext_modules, 22) 23 24------------------------------------------------------------------------- 25cythonfn.pyx 26 27# -*- coding: utf-8 -*- 28 29def calculate_z(maxiter, zs, cs): 30 """Calculate output list using Julia update rule""" 31 output = [0] * len(zs) 32 for i in range(len(zs)): 33 n = 0 34 z = zs[i] 35 c = cs[i] 36 while n < maxiter and abs(z) < 2: 37 z = z * z + c 38 n += 1 39 output[i] = n 40 return output 41 42 43

調べているとこれがリンクエラーのようなのですが
どう改善していいかわかりません
よろしくお願いします

ちなみに
http://www.geocities.jp/penguinitis2002/computer/programming/Python/cython/cython.html

このサイトにライブラリのリンクのつなぎ方が書いてあるのですが
どうしていいのかがわかりません

-------------追記----------------
minwgのインストール方法

http://web.plus-idea.net/2014/06/mingw-install-2014/

このサイトの通りに実行しました
最後のgcc --versionで確認することができたので
インストールはうまくいっていると思います
しかし、32bitか64かはわかっていません

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pashango2

2017/07/12 04:20

エラーは全て載せたほうがよいです、またsetup.pyと.pyxも載せたほうがよいです。
can110

2017/07/12 04:45

mingwのインストール手順も追記ください。(32or64bit版?)
guest

回答2

0

ベストアンサー

インポートライブラリが無いのではないでしょうか。

conda install libpython

を実行してみてください

投稿2017/07/12 04:38

magichan

総合スコア15898

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kohekoh

2017/07/12 04:54

インストールしてから、実行しましたが creating build\temp.win-amd64-3.6 creating build\temp.win-amd64-3.6\Release これがcreating buildのあとに追加されただけで かわりませんでした
kohekoh

2017/07/12 05:07

pyxファイルなのですが そこの違いは特にないですか? ということはpythonの3.5で実行すればいいということですかね
magichan

2017/07/12 05:15 編集

もしかして mingw は conda install mingw でインストールしたものではないのですか?
kohekoh

2017/07/12 05:16

逆にそういうインストールの仕方があるんですか… そっちでいけばいいんですかね
magichan

2017/07/12 05:18

はい。そちらからインストールしたmingwを使ってみてください
kohekoh

2017/07/12 05:18

では一回アンインストールしてから condaでmingwを入れたほうがいいですか??
magichan

2017/07/12 05:24 編集

PATHの優先順位だけでも何とかなりそうですが。 もしそのmingw を他で使用していないのであれば、そちらの方が安全かとおもいます。
magichan

2017/07/12 08:22

おっ、明らかにMSVCでビルドしようとしてエラーになってますね。
kohekoh

2017/07/12 08:25

そうですよね まえはcfgファイルの置き場所がわかりやすかったのですが どこに置けばいいかわからずじょうたいです
magichan

2017/07/12 08:28

確認したいことが2点あります。 1.setup.cfg に [build] compiler=msvc と書いたらどうなりますか? 2.setup.cfgに [build] compiler=mingw32 として、更に上でインストールした mingw(Anaconda/MinGW/bin)にPATHを通したらどうですか
kohekoh

2017/07/12 08:37

1.のように実行すると さっきコメントしたようなエラーがでます 2.のように実行すると このページの質問したときのエラーになります pathの通し方は C:\Anaconda\MinGW\bin で大丈夫ですか?
magichan

2017/07/12 08:39

Anacondaがインストールされている場所以下に "MinGW" があるはずなので、その場所です。
kohekoh

2017/07/12 08:47

通しましたが 質問した時のエラーです
magichan

2017/07/12 08:56

うーん・・なんかMSVCのアプローチの方がゴールが近い気がしてきました。 (mingwをインストールしてもらっておきながらスミマセン・・) こちらのリンク http://thinkami.hatenablog.com/entry/2016/06/06/225903 に同じような症状で、WindowsSDK10のインストールで解決したとの記事がありますが、どうですかね?
kohekoh

2017/07/12 09:19

わかりました やってみます! ありがとうございます!
kohekoh

2017/07/12 10:47

できました! ありがとうございます!
magichan

2017/07/12 13:04

おー良かった もしかすると (anacondaのインストールフォルダ)/Lib/distutils/distutils.cfg にデフォルト設定として [build] compiler=mingw32 が記述されているかもしれませんので、確認・修正しておくことをお勧めします。 おつかれさまでした
guest

0

エラーメッセージRecognised but unhandled machine type (0x8664) in Import Library Format archiveで検索すると、以下がヒットしました。
MinGW, linking to a dll on Windows
上記によると、32bit版MinGWで発生するエラーのようです。

また、参考にされているページにもMSYS2 64 bit (MinGW w64)と記載されているので64bit版MinGWのインストールが必要だと思われます。
参考:MinGW 64 bit 版 のセットアップ

投稿2017/07/12 05:11

can110

総合スコア38252

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kohekoh

2017/07/12 05:16

なるほど! ありがとうございます!
kohekoh

2017/07/12 07:18

ちなみにインストールしようとしたのですが the file has been downloaded incorrectly という風にいわれてしまい インストールできません インストーラーも何回かダウンロードしなおしたのですが、できません なぜでしょうか
can110

2017/07/12 07:25

ウイルス対策ソフトが動作していれば、停止させて再インストール試してみてください。 AVG のリアルタイム検索で同様症状出ているようです。 https://sourceforge.net/p/mingw-w64/bugs/413/
kohekoh

2017/07/12 07:49

できません…
can110

2017/07/12 09:47

sourceforgeにも複数のIsuueあがっているとおり、mingw-w64のインストーラは環境によってはうまく動作しないようですね… magichanさんのアドバイスのとおり、ビルドツールにMSVCを使った方がよいかもしれません。
kohekoh

2017/07/12 10:17

なるほど… わかりました ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問