C++と書きましたが C でも Fortran でもだいたい同じです。とりあえず gcc (g++) で Linux の話をします。目標としては次の二つです リンク時の undefined reference エラーとは何なのかを理解する(この記事) 実行時の cannot open libXXX.so エラーとは何なのかを理解する(次回) コンパイルとリンク C++ではプログラムを実行可能な形式にするまでにいくつかの形をとります ソースコード (*.cpp, *.cxx 等) オブジェクト (*.o) アーカイブ (*.a) 共有ライブラリ (*.so) 実行可能ファイル (a.out, これには普通拡張子はつけない) ソースコードから実行可能ファイルや共有ライブラリを作る操作を一般にコンパイルと呼びますが、特に複数のオブジェクトファイルを単一のアーカイブや共有ライブラリ、実行可能ファイ
![C++ユーザーの為のリンクの話1 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/310946432cb5e3035ea88d541f8d629796aac55b/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9QyUyQiUyQiVFMyU4MyVBNiVFMyU4MyVCQyVFMyU4MiVCNiVFMyU4MyVCQyVFMyU4MSVBRSVFNyU4MiVCQSVFMyU4MSVBRSVFMyU4MyVBQSVFMyU4MyVCMyVFMyU4MiVBRiVFMyU4MSVBRSVFOCVBOSVCMSVFRiVCQyU5MSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MjkxNDE0Yzg4ZGIwNGU0OTRkYTA0ZWM3YTU0MTRlNmI%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDB0ZXJtb3NodHQmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTNjMDA5ZTBhYTRlNDMyNDdkMTgzYmI5MDE3MTBjZjE4%26blend-x%3D142%26blend-y%3D436%26blend-mode%3Dnormal%26txt64%3DaW4g5qCq5byP5Lya56S-UklDT1MgKFJJQ09TIENvLiBMdGQuKQ%26txt-width%3D770%26txt-clip%3Dend%252Cellipsis%26txt-color%3D%2523212121%26txt-font%3DHiragino%2520Sans%2520W6%26txt-size%3D36%26txt-x%3D156%26txt-y%3D536%26s%3D7fe4566f42b52800603771878d3e5c9f)