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

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

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

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

C++

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

Q&A

解決済

3回答

7662閲覧

Visual studio 2019でデバッグ、リリース、x64 x86 といった実行する設定はどれがどう違うのか知りたい。

退会済みユーザー

退会済みユーザー

総合スコア0

C

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

C++

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

0グッド

0クリップ

投稿2020/08/25 00:52

Visual stido 2019で提示画像の赤く囲った部分にあるリリース、デバッグ、x64 x86などといった設定はどうすればいいのでしょうか?

提示コードを載せる必要はなく場合によって変わると思うのですがどの場合はどうすればいいのでしょうか?
.lib .dllなどの作成時においても知りたいです。

イメージ説明

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

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

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

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

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

guest

回答3

0

ベストアンサー

かなりざっくりとした説明になりますが、

[Debug]

  • デバッグに必要な情報がバイナリに含まれ、デフォルトでは最適化されない。
  • デバッグ実行でプログラムを停止させて変数の値などを確認したりできる。

[Release]

  • 最適化された高速なバイナリが出力される。
  • デバッグ情報などは全て削除されるので、デバッグ実行で変数の値などを確認することは出来ない。

[x86]

  • 32bit用のバイナリが出力される。
  • 64bitOS、32bitOS両方で動作可能。
  • 理論上のメモリ上限は4GB。(実際はOSの制約を受ける)
  • 32bit用のlib,dllしか使用できない。

[x64]

  • 64bit用のバイナリが出力される。
  • 64bitOSで動作可能。32bitOSでは動作不可。
  • 理論上のメモリ上限は16EB。(実際はOSの制約を受ける)
  • 64bit用のlib,dllしか使用できない。
  • 32bit用より若干バイナリサイズは大きくなる。
  • ポインタ等一部のデータ型が64bitになる。(追記)

開発中はDebug、製品として配布する段階でReleaseになります。
x86、x64の判断は使用予定のOS、ライブラリや、プログラムの規模によります。
もっと詳細に知りたい場合は、自身で個別にWebで調べてもらった方が情報が集まると思います。

投稿2020/08/25 01:27

編集2020/08/25 01:49
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2020/08/25 02:41

ライブラリでx86しかない場合ってどっちでもできるよっていう利点から来てるのでしょうか?
退会済みユーザー

退会済みユーザー

2020/08/25 02:59 編集

x64が普及してなかった頃から存在していて、64bit対応が考慮されていないライブラリなのかもしれませんが何とも言えません アーキテクチャ依存のコードが含まれていなければ、ソースがあれば恐らくx64でビルドし直せば動くとは思うのですが、同じような機能を持ち、現在もきちんとメンテナンスされている代替のライブラリがあるなら、乗り換えるのも手かもしれません
退会済みユーザー

退会済みユーザー

2020/08/25 03:38

質問ですが。libファイルとはそれをプロジェクトに追加するだけで使えるのでしょうか?関数等
退会済みユーザー

退会済みユーザー

2020/08/25 04:04

libに対応するヘッダファイルも必要です
fana

2020/08/25 04:20

(そのlibがインポートライブラリならdllも要る)
退会済みユーザー

退会済みユーザー

2020/08/25 04:39

インポートライブラリとはどういう意味なのでしょうか?dllですが。。。dllとlibの違いについては調べました。
退会済みユーザー

退会済みユーザー

2020/08/25 05:19

本題から逸れてきたので、これ以降は改めて質問してください。(ただ、キーワードで検索したら出てくるとは思いますが…)
guest

0

すっごい雑ですが…

リリース、デバッグ

デバッグするときは「デバッグ」,それ以外は「リリース」.
故に,完成品は「リリース」.

x64 x86

対象プラットフォームに合わせる.

型のサイズが変わったりするので,こういうのも見ておくと良いかも.
(x86での型のサイズを前提として書かれたようなコードをx64でビルドすると動作に異常が生じるかもしれない)

.lib .dllなどの作成時

libやdllを使う側と合わせておく.

投稿2020/08/25 01:26

編集2020/08/25 01:38
fana

総合スコア11654

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

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

fana

2020/08/25 01:40

x86,x64 : size_t型の値をファイル入出力しててえらい目にあったことがあります ^^
退会済みユーザー

退会済みユーザー

2020/08/25 01:43

ああ、型によるサイズ違いとかもありましたね…
fana

2020/08/25 01:54

質問者様は最近何やら,どこかから持って来た古いライブラリのソース(?)をビルドしようとしているっぽいので,そういう話も有った方がよいかな,とか.
退会済みユーザー

退会済みユーザー

2020/08/25 02:42

ゲームプログラミングc++という本にどうやらSOILライブラリを使うって書いてあるので仕方なく長い時間調べているのですが...本当はoepnglだけ使いたい。w
maisumakun

2020/08/25 02:47

本自体を変えるほうがいいかもしれませんね。
退会済みユーザー

退会済みユーザー

2020/08/25 02:50

一様.libを生成して実行できて書籍を読み進めていますが細かいライブラリの話が知りたかったので
fana

2020/08/25 04:12

その本が相当にそのライブラリ実装べったりな形の(そのライブラリありきな)説明しかしてないならば難しいかもですが, 本に記述されている内容の話(何らかのアルゴリズムとか?)と,そのライブラリを用いた実装とは分離して前者だけを読むこともできるのではないか? とか想像します. (というか,そのように読まないならば,その本を読むことは結局何の役にも立たないような…?)
退会済みユーザー

退会済みユーザー

2020/08/25 04:36

質問ですが、完成のリリースとはこの場合libファイルが完成したらリリースでビルドでいいいのでしょうか?
fana

2020/08/25 05:34 編集

完成品というのは, 「やったぜ! プログラムが完膚なきまでに完成したぞ! 何ならこのexeをだれかに配布するぜ! WOW!!」 みたいな状態の物のことです. あなたの現状の場合, 「まず謎のlibをつくり,次にそのlibを使ってゲームか何かのexeを作る」という話かと思います. で,「ゲームか何かのexe」を開発している最中は,デバッグ版としてビルドしたくなる場合もあるでしょう.その場合にはlibもデバッグ版を使う. 「ゲームか何かのexe」をリリース版としてビルドする(デバッグしない場合は通常はこっちでビルドする)場合には,libもリリース版を使う. なので,libは「デバッグ」「リリース」両方を用意して, ・「ゲームか何かのexe」のプロジェクトの「デバッグ」構成ではデバッグ版のlibを参照 ・「ゲームか何かのexe」のプロジェクトの「リリース」構成ではリリース版のlibを参照 という形にするんじゃないかと.
guest

0

リリース、デバッグ、x64 x86などといった設定はどうすればいいのでしょうか?

したいようにすればいいです。

.lib .dllなどの作成時においても知りたいです。

最終的に配布するものはリリースビルドですが、x86とx64のどちらをビルドターゲットにするかは作る側の判断です。

投稿2020/08/25 01:16

maisumakun

総合スコア145183

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

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

maisumakun

2020/08/25 01:19

えっと、「デバッグ」と「リリース」の意味がわからないということでしょうか?
退会済みユーザー

退会済みユーザー

2020/08/25 04:40 編集

そうですね。今はx64 デバッグモードで実行しています。 追記 別の回答者により理解しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問