私はLeopard MacBook Proのx64アセンブリでHello Worldを構築しようとしています。それは細かい組み立てが、私はそれをリンクしようとすると、私はこのエラーを取得する: LD:(通常crt1.o初/ dylib1.o/bundle1.oで)定義されていないdyld_stub_binding_helperシンボル推定されたアーキテクチャはx86_64用OS Xでx64アセンブリプログラムを作成するにはどうすればよいですか?
を、私はそれをロード ld -o hello64 hello64.o -lc
私のアセンブラはYasmです。
EDIT:32ビットコードとは異なり、自分でスタブヘルパーを指定する必要があります.64ビットスタブヘルパーの仕組みがわからないので、Bastienそれはそれ自身のスタブヘルパーを含んでいるので、GCCはそれをリンクしています。
Doh!私のアセンブリのエントリーポイントがの代わりに_main
だった場合、ldは自動的にcrt1.oをインクルードしていました。
。しかしOS Xでは、文書化されていないだけでなく、バージョン番号の増加に応じて変更できるので、実際にはライブラリ関数を呼び出すことができる必要があるので、syscallsを使うべきではありません。 –
@Micheal:ええ、しかし、実際にはx64 asmでコード化することはほとんどありません。その時、私は実際にx64システムコールを試していました;)あなたは何かスタンドアロン(libcへのリンクなし)。 –