Windows

VisualStudioで外部ライブラリを読み込めるようにする方法

今回はVisualStudioで外部ライブラリを使う方法の備忘録です。記事の中ではVisualStudio2017を使用していますが、基本的にはどのバージョンでも同じような感じになると思います。

なお、今回紹介する方法は私が普段している方法なので、これしか方法がないわけではありません。

Step1:ライブラリの置き場を作る

外部ライブラリはプロジェクト中でもなるべく他のファイルと分離して管理する方が楽です。そこで、プロジェクトフォルダ中に下図の構成で赤文字になっているフォルダを新規作成します。(図はTestというプロジェクトを作った場合の構成例)

構成中、binとlib下にそれぞれ「Debug」と「Release」の2種類を作っているのは、ライブラリ自体もデバッグ用とリリース用に分けて管理するためです。

Step2:各ライブラリ/ヘッダをコピーする

次に、使用するライブラリやヘッダファイルをStep1で作成したフォルダにコピーします。このとき、ファイルの種類に応じて以下のように分けてコピーします。

  • .dllファイル:binフォルダにコピー
  • .libファイル:libフォルダにコピー
  • .hファイル:includeフォルダにコピー

もし、ライブラリがデバッグ用とリリース用に分かれているのであれば、それぞれDebugとReleaseに分けてコピーしましょう。例えば、前回の記事で作成したfreeglutのライブラリを格納した場合、下図のような構成になります。(赤字がコピーしたファイル)

Step3:プロジェクト設定を変更する

ここまででファイルの準備は完了しました。あとはVisualStudio上でライブラリを参照できるように設定していきます。

インクルードディレクトリの設定

まずはヘッダファイルの場所の設定です。プロジェクトの「プロパティ」→「C/C++」→「全般」にある「追加のインクルードディレクトリ」に「$(SolutionDir)include」を追記します。このとき、画面左上の構成を「すべての構成」にしてください。

これで、Step1で作成したincludeフォルダ内をプロジェクトから参照できるようになります。もし設定項目に現れない場合は、何かソースファイルをプロジェクトに追加してから試してみて下さい。

これ以降、構成を「Debug」と「Release」のそれぞれで設定します。以下、Debug構成での設定例をまとめますが、Release構成でもやることは同じなので、DebugをReleaseに読み替えてくださいm(_ _)m

ライブラリの設定

次はライブラリの設定です。プロジェクトの「プロパティ」→「リンカー」→「全般」にある「追加のライブラリディレクトリ」に「$(SolutionDir)lib\Debug」を追記します。

続いて、同じく「リンカー」→「入力」の「追加の依存ファイル」にStep2でlib下にコピーしたファイルを追加します。

これで、ビルド時にlibファイルをリンクできるようになりました。

出力ディレクトリの設定

最後は出力ディレクトリの設定です。ビルドされた実行ファイルがdllファイルを読み込めるように、実行ファイルの出力先をdllファイルの置き場所に揃えてあげます。それには、プロジェクトの「プロパティ」→「全般」にある「出力ディレクトリ」を「$(SolutionDir)bin\Debug\」に変更します。

これで、実行ファイルからdllファイルが読み込めるようになりました。作業自体はこれで完了です。

あとはソースコード中からヘッダを読み込んであげればライブラリの中の関数を使うことができます。フォルダ構成も含めてこの方法が絶対ではありませんが、もしVisualStudioでのライブラリ読み込みに苦労している方は参考にしてみてください。

ではではノシ

関連記事

日記 自作物

2020/5/14

GitHubのコントリビューション数をグラフ化してみた

先日、ブログのトップページにGitHubの草を表示してみたという記事をあげました。 Corgi Lab. ~備忘録のための技術ブログ~ブログ内にGithubの草を生やしてみた今回はちょっとした小ネタです。お気づきの方もいるかもしれませんが、PC限定でブログのページ上部にGithubのコントリビューションを表示してみました。俗にいう「草を生やす」というやつです。特に深い意図はありませんが、これがあるだけでぐっと技術系ブログ色が... GitHubの草(コントリビューション)は日々の活動が可視化されるので、個 ...

この記事を読む

RaspberryPi

2020/5/6

Raspberry Pi4上のUbuntu ServerでCPUクロックを制限する方法

Raspberry Pi4は消費電力が大きく発熱がちょっと心配です。そのため、用途によっては意図的にCPUの動作クロックを絞って消費電力と発熱を抑えるという運用もアリかと思います。 CPUクロックの設定方法の多くはRaspbianを例に挙げていますが、Ubuntu Serverでも同じ方法で設定できたので、備忘録として残しておきたいと思います。 動作環境は、 ・Raspberry Pi4本体:モデルB(メモリ4GB) ・OS:Ubuntu Server 20.04 です。 目次CPU状態のチェッククロック ...

この記事を読む

RaspberryPi Linux

2020/5/2

RaspberryPi4でUbuntu Server 20.04を動かしてみた

新しい遊び道具として、RaspberryPi4(ModelB 4GBメモリ)を買いました。 前モデルと比べて大幅に性能アップしているということで、学習用のLinux環境としても実用的なものになりそうです。ということで、今回はRaspbian(ラズパイの標準OS)ではなく、Ubuntu Serverをインストールして使ってみたいと思います(・∀・) 目次OSイメージのダウンロードSDカードにイメージを書き込む初期起動+設定固定IPアドレスを設定する OSイメージのダウンロード まずはUbuntu Serve ...

この記事を読む

日記

2020/5/14

ブログ内にGithubの草を生やしてみた

今回はちょっとした小ネタです。 お気づきの方もいるかもしれませんが、PC限定でブログのページ上部にGithubのコントリビューションを表示してみました。俗にいう「草を生やす」というやつです。 特に深い意図はありませんが、これがあるだけでぐっと技術系ブログ色が強まるので、遊び半分で組み込んでみました。そこまで難しくないので、その方法を紹介しようと思います。 目次生やすだけなら簡単ちょっとひと工夫画像の取得はwget+Cronであとはブログ内に貼るだけ後日談:自分でグラフをつくってみました 生やすだけなら簡単 ...

この記事を読む

Flutter

2020/4/12

【Flutter】リリースチャンネルについて調べてみた

この記事を書いている2020/04/12時点で、FlutterのiOS実機ビルドが以下のようなエラーで通らなくなっています(´・ω・) Building for iOS, but the linked and embedded framework 'App.framework' was built for iOS Simulator. どうやら、最新のXcode11.4とstableチャンネルの組み合わせが原因らしく、Flutterのチャンネルを切り替えてあげればOKとのことでした。 とりあえず、stab ...

この記事を読む

-Windows

© 2020 Corgi Lab. ~備忘録のための技術ブログ~