OS:MacOSX10.5.1
ruby:1.8.6
rails:2.0.2
macにmysql/rubyをインストールしようとしているのですがmakeすることが出来ず困っています。エラー内容は以下の通りです
Macintosh:mysql-ruby-2.7.3 atsuhiroteshima$ make
cc -arch ppc -arch i386 -pipe -bundle -o mysql.bundle mysql.o -L"." -L"/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib" -L. -arch ppc -arch i386 -lruby -L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -lpthread -ldl -lm
ld: warning in /usr/local/mysql/lib/mysql/libmysqlclient.dylib, file is not of required architecture
Undefined symbols for architecture ppc:
"_mysql_store_result", referenced from:
_store_result in mysql.o
_query in mysql.o
"_mysql_stmt_errno", referenced from:
_mysql_stmt_raise in mysql.o
_stmt_prepare in mysql.o
_stmt_result_metadata in mysql.o
"_mysql_stmt_error", referenced from:
_mysql_stmt_raise in mysql.o
"_mysql_options", referenced from:
_options in mysql.o
(中略)
"_mysql_fetch_field", referenced from:
_fetch_field in mysql.o
"_mysql_get_proto_info", referenced from:
_proto_info in mysql.o
"_mysql_errno", referenced from:
_mysql_raise in mysql.o
_my_errno in mysql.o
"_mysql_error", referenced from:
_mysql_raise in mysql.o
_my_error in mysql.o
"_mysql_escape_string", referenced from:
_escape_string in mysql.o
ld: symbol(s) not found for architecture ppc
collect2: ld returned 1 exit status
lipo: can't open input file: /var/folders/+b/+b2BrDwnESy62VzzTJy9k++++TI/-Tmp-//cc8ile28.out (No such file or directory)
make: *** [mysql.bundle] Error 1
どなたかこのエラーの解決方法を教えていただけないでしょうか。
お願いします。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
僕はleopard、最初からのrubyでmysql/rubyを入れているので大丈夫だと思ったのですがだめでしたか。
もしかしたら、makeの前でパスの指定が間違ってるのかもしれませんね。(makeの段階まで来てるという事は大丈夫のだと思うのですが
返事が遅くなり申し訳ありません。mysql/rubyはleopardには初期状態では入っていないようでした。
結局、osを再インストールし、mysqlのdmgファイルを使ってmysqlをインストールした後、gemを使って、mysql/rubyをインストールしたところなんとかうまくいきました。
どうやら、mysql/rubyのファイルをダウンロードするよりは、gemsを使ってインストールする方がよいようです。
makeに関しては、結局できずに終わりましたがbabe335さんのアドバイス非常に参考になりました。ありがとうございました。
No.4
- 回答日時:
>となりました。
まだ別のエラーが出てます?
通常は適当なディレクトリに展開して、
./configure
make
sudo make install
のような手順で進めることが多いです。
> /Library/Ruby/Gems/1.8/gems/mysql-2.7/
> のディレクトリにMakefileがあります。
OS Xのディレクトリ構成はよく知りませんが、これは最終的なインストール先になるべきところではないでしょうか?
あーでも gem経由でやったんでしたっけ。
sakusakerさん、アドバイスありがとうございます。返事が遅くなりすいません。
osを再インストールして、gemsを使って再度mysql/rubyをインストールしてみたところ、今度はうまくいきました。
よくは分かりませんが、macportsとgemsをどちらも使ってごちゃごちゃいろいろなものをインストールしたのがよくなかったみたいです。(まだunixの操作になれてないので、どうやってgemsやportを結びつけるかわかりませんでした。)
親切に何度もアドバイスをいただきありがとうございました。
No.3
- 回答日時:
> これはmysql.bundleというファイルに問題があるということでしょうか?
mysql.bundleは、これから作ろうとするファイルです。
>ld: can't open output file for writing: mysql.bundle
「書き込みのためにオープンすることができない」ってでてるでしょ?
ありがちなのは、書こうとしているディレクトリに対する書き込み権限がないということですけど、
どこのディレクトリに展開して makeをどこで実行していますか?
#sudo は make installのときだけでいいはずだよなあ
/Library/Ruby/Gems/1.8/gems/mysql-2.7/
のディレクトリにMakefileがあります。
rootで実行したところ
cc -arch i386 -pipe -bundle -o mysql.bundle mysql.o -L"." -L"/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib" -L. -arch i386 -lruby -L/opt/local/lib -L/opt/local/lib/mysql5/mysql -lmysqlclient -L/opt/local/lib -lz -lm -L/opt/local/lib -lssl -lcrypto -lpthread -ldl -lm
となりました。
No.2
- 回答日時:
Makefileの3カ所から"-arch ppc"というのを削除してmakeは出来ませんか?
参考URL:http://d.hatena.ne.jp/sugarbabe335/20071212/1197 …
babe335さん。回答ありがとうございます。
試してみたところ、やはり次のようなエラーが出ました。
cc -arch i386 -pipe -bundle -o mysql.bundle mysql.o -L"." -L"/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib" -L. -arch i386 -lruby -L/opt/local/lib -L/opt/local/lib/mysql5/mysql -lmysqlclient -L/opt/local/lib -lz -lm -L/opt/local/lib -lssl -lcrypto -lpthread -ldl -lm
ld: can't open output file for writing: mysql.bundle
collect2: ld returned 1 exit status
make: *** [mysql.bundle] Error 1
これはmysql.bundleというファイルに問題があるということでしょうか?
No.1
- 回答日時:
Mac OS X は使ってないので解決策じゃなくて申し訳ないんだけど、
>mysql_store_result
この辺の未定義シンボルって、MySQL側のライブラリにある関数ですよね。
で、
> -lmysqlclient -lz -lm -lpthread -ldl -lm
名前からしてこの libmysqlclient にある可能性が高いと思うんですが、
> ld: warning in /usr/local/mysql/lib/mysql/libmysqlclient.dylib, file is not of required architecture
のように、中身が期待したものじゃないみたいですね。
>cc -arch ppc -arch i386 -pipe -bundle
ユニバーサルバイナリを作ろうとしているのに、ライブラリがそれようになってないとか、片方のしかないとか。
sakusaker7さん回答ありがとうございます。
mysqlのことは、ほとんど知識がないのですが、それはつまりインストールしたMySQLのライブラリに問題があるということでしょうか?
MySQLはmysql-5.0.45-osx10.4-i686.dmgを使ってインストールしたのですが、このファイルにそのライブラリが含まれていなかったという理解が正しいのでしょうか?それとも単にPathが通ってないなどの問題なのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーアカウンントの重複を...
-
mysqlにあるemailへそれぞ...
-
sqlの検索結果件数を知りたい
-
select文
-
PHPからMySQL・異なるDBにコピー
-
SQLで検索:表示の仕方
-
以下をDBから取得するには?
-
データベースから多次元連想配...
-
変数にNULLを代入したい
-
SQL文が実行できません
-
C#でDBの特定列をUpdate
-
読み込んだファイル中の文字列...
-
MySQL接続のPHPの記述に関しまして
-
cron
-
ResultSetインターフェイスでの...
-
DB::connectでパスワードに「@...
-
一度検索されたものに対するソ...
-
PHPでMySQLのデータを2次元配...
-
PHPとMysql での順位付け
-
INSERT,DELETEを同時に
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysql_fetch_objectのエラー
-
phpのエラーについてです
-
Resource id #3 をフィールドの...
-
XAMMPが起動しません。
-
縦に長い<table>でなく横に長い...
-
sqlから多次元配列に要素を格納...
-
ボタンのonclick時における関数...
-
stringaddslashes 半角¥が消える
-
CSVをダウンロードさせた際、CS...
-
MySQLのデータを使ってプルダウ...
-
【PHP】クエリーの実行に失敗し...
-
PHPで絞り込み検索結果の件数を...
-
DB(MySQL)から複数行のデータを...
-
配列に値が入らない
-
住所録を作りたい
-
リストから詳細画面に遷移する...
-
テーブルのレコード数を取得し...
-
子プロセス終了で閉じてしまうm...
-
PHP+mysqlでSQL文に文字数制限...
-
PHPのSQLインジェクションはspr...
おすすめ情報