質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

3203閲覧

Cmakeでgithubのライブラリを使う方法を教えてください。

KOTTON

総合スコア47

CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/07/14 18:22

編集2020/07/15 01:46

環境

C++ 20
CLion
Cmake 3.16

質問

GithubのMinHookというライブラリのdllを使いたいのですが、Cmakeを使ってビルドする方法がわかりません。

僕のプロジェクトはこのようなディレクトリ構造になっています。
プロジェクト名はTestです。

CMakeLists.txt main.cpp Dependencies |--- Minhook |--- bin |--- MinHook.x86.dll |--- MinHook.x86.lib |--- include |--- MinHook.h

現在のCMakeList.txt とエラー内容

色々調べてそれっぽく書いたのですが、動きませんでした。

cmake_minimum_required(VERSION 3.16) project(Test) set(CMAKE_CXX_STANDARD 20) include_directories("Dependencies/Minhook/include") find_library(MINHOOK "Dependencies/Minhook/bin") add_executable(Test main.cpp) target_link_libraries(Test ${MINHOOK})
CMake Error: The following variables are used in this project, but they are set to NOTFOUND. Please set them or make sure they are set and tested correctly in the CMake files: MINHOOK linked by target "Test" in directory D:/Dev/Cpp/Test NMAKE : fatal error U1077: '"C:\Program Files\JetBrains\CLion 2020.1.2\bin\cmake\win\bin\cmake.exe"' : リターン コード '0x1' Stop.

#余談
GithubのeducationライセンスでCLionが無料で使えるようになったのですが、Cmakeがうざすぎます。Visual Studioのほうが使いやすくて、何のためにCLionに乗り換えたのか本当に分からなくなりました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuki23

2020/07/15 00:53

質問と関係ないですが、どうしてCLionなんてマイナーで高額なIDEの質問がたまに来るんだろう? と思っていたんですが、Github Education ライセンスというので無料で使えるんですね。
KOTTON

2020/07/15 01:27

そうなんです!学生なら100個以上のサービスが一部無料で使えます CLionってマイナーな部類なんですかね?Jetbrainだからと安心してたんですが
guest

回答1

0

ベストアンサー

CMake で外部ライブラリを使う際は

  • include_directories() でインクルードパスを追加
  • target_link_libraries() でライブラリをリンク

の2点を行えば、基本的に使えます。

CMakeLists.txt

cmake

1cmake_minimum_required(VERSION 3.16) 2project(sample) 3 4set(CMAKE_CXX_STANDARD 11) 5set(CMAKE_CXX_STANDARD_REQUIRED ON) 6 7add_executable(${PROJECT_NAME} src/main.cpp) 8 9# インクルードパスを追加 10include_directories(Dependencies/Minhook/include) 11 12# MinHook.x86.dll をリンク 13target_link_libraries(${PROJECT_NAME} 14 ${CMAKE_SOURCE_DIR}/Dependencies/Minhook/bin/MinHook.x64.lib) 15

#include "MinHook.h" をインクルードして、その関数を呼び出してコンパイルが通ることだけ確認しました。MinHook 自体はなんのライブラリなのか私はわからないので、動作確認はしていません。


Cmakeがうざすぎます

CMake は C++ のビルド管理ツールとしてはデファクトスタンダードなので、使い方は覚えておいたほうがよいです。GitHub にある C++ のライブラリもほとんど CMake を使ってます。

投稿2020/07/15 02:36

tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KOTTON

2020/07/15 06:47

ありがとうございます。 C++はコーディングだけじゃなくてビルドなどの周辺ツールもややこしいので、C++の役割を取って代わろうとする言語が生まれるのもうなずけます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問