タグ

linkerに関するxiangzeのブックマーク (2)

  • C++ユーザーの為のリンクの話1 - Qiita

    C++と書きましたが C でも Fortran でもだいたい同じです。とりあえず gcc (g++) で Linux の話をします。目標としては次の二つです リンク時の undefined reference エラーとは何なのかを理解する(この記事) 実行時の cannot open libXXX.so エラーとは何なのかを理解する(次回) コンパイルとリンク C++ではプログラムを実行可能な形式にするまでにいくつかの形をとります ソースコード (*.cpp, *.cxx 等) オブジェクト (*.o) アーカイブ (*.a) 共有ライブラリ (*.so) 実行可能ファイル (a.out, これには普通拡張子はつけない) ソースコードから実行可能ファイルや共有ライブラリを作る操作を一般にコンパイルと呼びますが、特に複数のオブジェクトファイルを単一のアーカイブや共有ライブラリ、実行可能ファイ

    C++ユーザーの為のリンクの話1 - Qiita
  • 自作ライブラリのリンク時に Undefined symbols for architecture エラーが発生する。

    これを見ると、なにやらライブラリの組み込みが無視されたということが伺えます。 具体的にはmissing required architecture arm64 のところで、おそらくarm64 用のバイナリが見つからなかったためにライブラリが無視されたということのようでした。 原因 原因は警告メッセージのとおりで、今回の場合はビルドされたライブラリに適切なバイナリが存在しなかったために発生したエラーでした。 ライブラリの場合は複数のバイナリをビルドしてまとめられたりするようですけど、デバッグビルドの時には効率優先で、現在のアーキテクチャーだけのバイナリを作るようにBuild Settings で設定されているようです。 Xcode 6 ではこれが推奨設定のため、プロジェクト設定を自動で調整してもらうと、この設定が有効になってビルドに失敗する場合もあります。 対処方法 対処方法は簡単で、Bui

  • 1