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

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

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

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

C++

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

Q&A

解決済

1回答

5060閲覧

Cmakeでヘッダーオンリーのライブラリをincludeしたいです!

KOTTON

総合スコア47

CMake

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

C++

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

0グッド

1クリップ

投稿2020/07/24 09:20

編集2020/07/24 09:21

質問

ToruNiina/toml11というtomlのparserを使いたいのですが、どうやらこのライブラリは.hppだけで構成されるヘッダーオンリーというものらしいのです。これをcmakeでインクルードする方法を教えてください!

そもそも上記のライブラリの場合、具体的にどのフォルダやファイルを自分の環境に置けばいいのでしょうか?
toml.hppファイルとtomlフォルダの二点でしょうか?
また、それらはどのように配置したらよいのでしょうか

試したこと

toml.hppファイルとtomlフォルダをダウンロードして、toml.hpptomlフォルダに放り込んで

cmake

1include_directories(${CMAKE_CURRENT_SOURCE_DIR}Dependencies/toml11/include)

としましたが、IDE上で確認するとインクルードできていませんでした。

また、以下も試しましたがダメでした

cmake

1target_include_directories(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}Dependencies/toml11/include)

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

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

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

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

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

guest

回答1

0

ベストアンサー

include_directories() に ToruNiina/toml11: TOML for Modern C++ からダウンロードした toml11 ディレクトリのパスを指定すれば、#include <toml.hpp> で include できます。

toml11 を置いた場所に応じて適宜変更してください
include_directories() を相対パスで指定する場合は、基点となるディレクトリは CMakeLists.txt があるパスになります。

│ CMakeLists.txt ├─src │ └─main.cpp └─toml11 ← git clone したディレクトリごと配置 │ .gitignore │ .travis.yml │ appveyor.yml │ CMakeLists.txt │ LICENSE │ README.md │ toml.hpp ├─.circleci ├─.github ├─cmake ├─tests └─toml

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(toml11)

投稿2020/07/24 09:52

編集2020/07/24 15:24
tiitoi

総合スコア21956

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

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

KOTTON

2020/07/24 10:21

github上にtoml11というフォルダはないのですが、git clone等でプロジェクトごとダウンロードした想定のことでしょうか? toml11フォルダになにが入っているのか教えてください。
tiitoi

2020/07/24 15:21

すいません。ファイルではなく、ディレクトリのことでした。 git clone https://github.com/ToruNiina/toml11.git したら toml11 というディレクトリがダウンロードされるので、それを適当な場所に配置して、CMakeLists.txt からの相対パスで include_directories() に追加すればよいです。
tiitoi

2020/07/24 15:24

ようは toml.hpp があるディレクトリのことです。
KOTTON

2020/07/24 15:41

ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問