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

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

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

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

C++

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

Q&A

解決済

3回答

7996閲覧

Cmakeを利用する理由が知りたいです。

carnage0216

総合スコア194

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

C++

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

0グッド

0クリップ

投稿2018/02/04 07:13

GPUのプログラミングする上での環境に関しての質問なのですが、
GPUのプログラミング環境で検索するとvisuals studio などを使うのはわかるのですがCmakeを使う理由がわかりません。
何故でしょうか?
また、Cmakeなしでもvisuals studio やヘッダファイル、ライブラリなどを使えばGPUを使ったプログラミングは出来るのでしょうか?
二つの質問ですがどうかよろしくお願いいたします。

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

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

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

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

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

guest

回答3

0

こんにちは。

Cmakeを使う理由がわかりません。

ちょっと話が遠そうなので、かい摘んで説明してみます。

多数のソース・ファイルからビルドされるようなプロジェクトは結構あります。
それをデバッグする時、毎回全てのソース・ファイルをコンパイルしているとデバッグに時間がかかってどうしようもありません。(プロジェクトによってはビルドに1時間かかるようなものもそれなりにあります。)

それは避けたいので、修正したソース・ファイルだけコンパイルし、他のものは前回コンパイルした結果を使ってプロジェクトをビルドするのが一般的です。
複数のソースを修正することも頻繁ですので、修正したソース・ファイルを一々指定するのは面倒です。更に、ヘッダ・ファイルを修正した場合、それをインクルードしているソース・ファイルをコンパイルする必要があります。その依存関係を覚えていて、必要なソース・ファイルを手でコンパイルするのは悪夢です。

それを自動化するツールが、makeやMSBuildです。(後者はVisual Studioで使われているビルド自動化ツールです。)
それらは、設定ファイル(前者はmakefile、後者は*.projファイル等)を読み込んで必要な処理を行います。

さて、それらの設定ファイルを作るのは、これがまた実にたいへんです。私は手で作る根性は正直ありません。Visual StudioはGUIで設定しますが、似たようなプロジェクトを作る時本当に面倒です。また、makefileと*.projは構文も考え方も全く異なるので、gccとVisual C++の両方でビルドできるプロジェクトを作るのも正直悪夢です。

その悪夢を回避するツールがCMakeです。これを使うと、makefileや*.projに比べると簡単なCMakeLists.txtを書けば、makefileや*.projを自動生成できます。マルチプラット・フォームなプロジェクトを作る時には非常に重宝します。
Windowsだけの場合でも、GUIで一々設定するのはかなり大変ですからやはり重宝します。本当に便利ですよ。

無関係な項目もありますが、CMakeの基礎とTheolizerの組み込み方はCMakeの基本的な使い方の解説が大半ですので、参考にされると良いかも知れません。

また、Cmakeなしでもvisuals studio やヘッダファイル、ライブラリなどを使えばGPUを使ったプログラミングは出来るのでしょうか?

CMakeは便利ツールですので、なくても可能です。ただ単にたいへんなだけです。
例えば電卓がなくても家計簿計算はできると思います。CMakeはそのような位置付けです。時には複式簿記の処理を電卓なしでやるような差がでることもあると思います。

投稿2018/02/04 07:46

Chironian

総合スコア23272

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

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

carnage0216

2018/02/04 11:12

なるほどです。 まだ難しい部分はありますが、調べてみます。 どうもありがとうございました。
guest

0

ベストアンサー

https://cmake.org
https://ja.m.wikipedia.org/wiki/CMake

興味を持つのは大変良いことですが、調べたらすぐにわかることを質問しても成長しません。
教えてもらうことで調べる時間は省けますが、それではエンジニアとして生きて行けません。
厳しくいっているように聞こえるかもしれませんが、結構重要なことなのでお許しください。
質問することは大事な素質でありますが。

オープンソースのコードは何のためにあるのか自分で説明します。
そうでないと他の人に使ってもらえません。
その説明を読んでもわからない場合、まだそのツールを使う段階ではないことを意味しています。

ただ最近は高度なツールがたくさんあって、歴史を勉強しないと理解するのは難しいかもしれません。


cmakeはビルド用のツールです。
依存関係を記述するための大量のコードをより少ない量のコードから生成します。

visuals studio などを使うのはわかるのですが

visuals studioは統合開発環境と呼ばれるものです。
https://ja.m.wikipedia.org/wiki/統合開発環境
ウィキペディアの説明のうち「統合開発環境の特徴」の「ビルド、デバッグ補助」の役割の一部をcmakeは担うことができます。


機械学習に興味があるようですが、
tensoflowは一般にcmakeではなくbazelを使います。

投稿2018/02/04 08:47

mkgrei

総合スコア8560

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

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

carnage0216

2018/02/04 11:06

おっしゃる通りです。 ただ、実際にwikiやサイトを調べました。 調べて自分の知りたい事が書いていなかったため質問したのです。 どうもありがとうございます。
carnage0216

2018/02/04 11:08

機械学習について、貴重な情報どうもありがとうございます。
umyu

2018/02/04 11:18

>ただ、実際にwikiやサイトを調べました。 横レスですが、質問者様へ ネット越しなので調べたなら質問文にその旨を記載しないと、相手に伝わりません。 質問を投稿する時に一手間掛けて自分が調べたこと、知りたいことを記載するほうが良い質問になります。
mkgrei

2018/02/04 15:31

umyuさんがおっしゃるように、書かれていないことは察することができないので誤解されやすいです。 また、調べたサイト等を添えることによって、 このサイトはこのことについて説明が不足している、 このサイトはこの説明が特によい、 次はこれを見るとわかりやすい などとより期待に添える回答が得られる可能性が高くなります。
guest

0

GPUのプログラミング環境で検索するとvisuals studio などを使うのはわかるのですがCmakeを使う理由がわかりません。

何故でしょうか?

CMakeならいろんなOS/環境に対応できますから。

また、Cmakeなしでもvisuals studio やヘッダファイル、ライブラリなどを使えばGPUを使ったプログラミングは出来るのでしょうか?

フツーにできますよ。CUDA/WindowsだとVisual Studio にbuilt-in されますし。

投稿2018/02/04 07:44

episteme

総合スコア16614

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

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

carnage0216

2018/02/04 11:09

どうもありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問