Linuxコンパイルが表示されます(.text + 0x20):「main」collect2への未定義の参照:エラー:ldは1を返します| (.text + 0x20):未定義の参照Scrt1.o
Linux Compilation Appears
@ [TOC](Linuxコンパイルが表示されます(.text + 0x20): 'main'への未定義の参照collect2:エラー:ldは1を返します|(.text + 0x20): `main 'への未定義の参照と関数メソッドへの未定義の参照)
オペレーティング・システム
Ubuntu18.04 hpbook2000gccバージョン7.3.0
物語
まず、国内のウェブサイトから借りましたが、ほとんどの人がMakefileはとても変だと言っていました。ソースコードをコンパイルするときに問題だと思いました。しかし、誰もがそれをインストールするために「apt install gcc && apt installg ++」を使用しました。このエラーは発生しないと言われています。の。その時私は素朴で、愚かな日を待ちました。 ソースコードはgccをコンパイルします。
取得しても意味がないので、上記のエラーをお知らせします。次に、メインを_startに変更するか、メイン関数名が問題ないかを確認するインターネットを聞いてください。 tmサークルおならを置きます。また、最も重要な理由は、Scrt1.oのメイン関数名が使用前に定義されているため、エラーが報告されることであるとも言われています。わかりました。.oファイルを変更する方法がわかりません。
オンラインでは、前者を変更する方法があるとも述べています。gcc&g ++では、-nostdlibまたは-nostartfileパラメーターを追加します。コンパイル後、カーネルが欠落し、エラーはさらに法外です。 .oファイルを強制的に歪ませた結果であるセグメンテーション違反もあります。
##私の解決策// The most nonsensical approach is often the most effective, just like the bad pen method. cd /usr/lib/ && cp crt1.o Scrt1.o
そうでない場合は、gccを再度コンパイルします。 G ++とgccは相互に関連付けられています。