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

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

新規登録して質問してみよう
ただいま回答率
85.48%
コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

Q&A

解決済

1回答

3902閲覧

nasmでコンパイルする方法

ristori

総合スコア17

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

0グッド

0クリップ

投稿2015/01/28 16:03

NASMをつかってソースコードhello.asmをコンパイルしたいです。ターミナルで

lang

1$ nasm -f elf -o hello.o hello.asm 2$ ld -s -o hello.o

としたところ

lang

1ld: warning: option -s is obsolete and being ignored 2ld: warning: -arch not specified 3ld: warning: -macosx_version_min not specified, assuming 10.10 4ld: no object files specified for inferred architecture x86_64 5

とでてしまいます。
hello.asmをバイナリファイルhello.oにするところまでは成功しているようなのでどうすればこのファイルを実行できるのかわかりません。アセンブラは初めてなので用語に間違いがあるかもしれませんが回答お願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

ld -s -o hello.o

-o は出力ファイルの指定なので、hello.o をリンクするなら、単に、

lang

1ld hello.o

で、実行ファイルa.outが出来ると思います。
ライブラリを呼んでいるならld-lオプションでライブラリを指定する必要があります。

投稿2015/01/29 07:43

otn

総合スコア84505

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

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

ristori

2015/01/30 07:47

$ ld hello.o ld: warning: -arch not specified ld: warning: -macosx_version_min not specified, assuming 10.10 ld: warning: ignoring file hello.o, file was built for unsupported file format ( 0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 ) which is not the architecture being linked (x86_64): hello.o Undefined symbols for architecture x86_64: "start", referenced from: implicit entry/start for main executable ld: symbol(s) not found for inferred architecture x86_64 と出てしまいます。ライブラリを指定、とはどういうことでしょうか。
otn

2015/01/30 14:45

エラーが出るのはプログラムが悪いか、プログラムに応じたオプション指定が無いせいです。プログラムを見ないとそれ以上言いようが無いですね。 >ライブラリを指定、とはどういうことでしょうか。 アセンブラに手を出す前に、まずCをマスターしてからの方が良いと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問