13,009
回編集
(→概要) |
|||
1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
Qt Creatorにおいて、静的ライブラリおよび動的ライブラリを作成して、他のQtプロジェクトにリンクする手順を記載する。<br> | Qt Creatorにおいて、静的ライブラリおよび動的ライブラリを作成して、他のQtプロジェクトにリンクする手順を記載する。<br> | ||
<br><br> | |||
== 外部リンケージの制限 == | |||
==== --version-scriptオプションによるAPI制限 ==== | |||
マップファイルに公開する関数を指定して、コンパイラのビルドオプション (<code>LDFLAGS</code>) に<code>-Wl,--version-script,<マップファイル名>.map</code>を付加する。<br> | |||
LDFLAGS+=-Wl,--version-script,<マップファイル名>.map | |||
<br> | |||
<マップファイル名>.map | |||
{ | |||
global: | |||
<公開する関数名 1>; | |||
<公開する関数名 2>; | |||
<公開する関数名 3>; | |||
local: *; | |||
}; | |||
<br> | |||
==== 公開する関数に__attribute__((visibility("default")))を付加する ==== | |||
コンパイラのビルドオプションに<code>-fvisibility=hidden</code>を付加する場合、まず全ての関数が非公開になる。<br> | |||
次に、公開する関数名の前に<code>__attribute__((visibility("default")))</code>を付加する。<br> | |||
<br><br> | |||
== 外部リンケージの確認 == | |||
==== nmコマンドの使用 ==== | |||
<code>nm</code>コマンドを実行して、外部リンケージを確認することができる。<br> | |||
nm -D <ライブラリファイル名> | |||
<br><br> | <br><br> | ||