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

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

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

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

C++

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

DXライブラリ

DXライブラリとは、DirectXを使ったWindowsソフトの開発に必ず付いて回るDirectXやWindows関連のプログラムを使い易くまとめた形で利用できるようにしたC++言語用のゲームライブラリです。

Q&A

解決済

2回答

2804閲覧

clでDxLibをコンパイルする方法

gift-0618

総合スコア22

C

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

C++

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

DXライブラリ

DXライブラリとは、DirectXを使ったWindowsソフトの開発に必ず付いて回るDirectXやWindows関連のプログラムを使い易くまとめた形で利用できるようにしたC++言語用のゲームライブラリです。

0グッド

0クリップ

投稿2021/10/24 09:34

やりたこと

タイトルの通り、Visual Studioのコマンドラインで使えるclコマンドで、
DxLibをコンパイルしたいです。

説明

そのままの意味で、実行したいのですが。
どういう様にコマンドを実行するのかわからなかったので質問します。
DxLib・Visual Studio等々はインストール済みです。

試したこと

一応試したコマンドはこの通りです、、、
DxLibでテトリスを作るという動画を見てやったのですが、
""の中に入るものがわかりませんでした

cmd

1cl main.cpp /link /LIBPATH:""

""の中にC:\DxLib_VC\プロジェクトに追加すべきファ イル_VC用と入力し、やってみたらいかが出力されました。

Microsoft(R) C/C++ Optimizing Compiler Version 19.30.30704 for x86

Copyright (C) Microsoft Corporation. All rights reserved.

main.cpp

Microsoft (R) Incremental Linker Version 14.30.30704.0
Copyright (C) Microsoft Corporation. All rights reserved.

/out:main.exe

/LIBPATH:C:\DxLib_VC\プロジェクトに追加すべきファイル_VC用
main.obj
DxLib_vs2015_x86_MT.lib(DxInputWin.obj) : error LNK2019: 未解決の外部シンボル __imp__VariantInit@4 が関数 "int __cdecl DxLib::IsXInputDevice(struct _GUID const *)" (?IsXInputDevice@DxLib@@YAHPBU_GUID@@@Z) で参照されました
main.exe : fatal error LNK1120: 1 件の未解決の外部参照

DxLibはVC++用、MinGW用でやったのですが、上記はVC++の方です。

最後に

初めてだったので躓いてしまいました、、、
ご回答よろしくおねがいします、、、

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

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

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

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

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

guest

回答2

0

ベストアンサー

clのコマンドラインの内容を確認できる箇所

Serbonis さんが提示されている箇所ですが、画面だと下記になります。

イメージ説明

ただ、エラーが出ている原因は DxLib 自体ではなく依存関係のあるライブラリの方ではないかと思います。
エラーは VariantInit が見つからないと言っています。この関数は OleAut32.lib に含まれているので、このライブラリをリンクするかパスに追加する必要があるかと思います。オレンジ色の枠になります。

LINK2019: 未解決の外部シンボル impVariantInit@4

イメージ説明

<参考情報>

■ problem with a sample code i found in msdn
https://social.msdn.microsoft.com/Forums/vstudio/en-US/7879cd25-0850-49c6-bdb0-b3000fac0bec/problem-with-a-sample-code-i-found-in-msdn?forum=vclanguage

LNK2019: unresolved external symbol __imp__VariantInit@4 referenced in function

OleAut32.lib which contains:
VariantInit

投稿2021/10/24 13:20

編集2021/10/25 13:07
cx20

総合スコア4648

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

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

gift-0618

2021/10/24 15:28

追加オプションに「/LIBPATH:"C:\DxLib_VC\プロジェクトに追加すべきファイル_VC用"」と入力すればよいのでしょうか?、、、 あと、画像のオプションと自分の環境のオプションとが違うと思うのですが大丈夫なのでしょうか?、、、
cx20

2021/10/24 15:42

> 追加オプションに「/LIBPATH:"C:\DxLib_VC\プロジェクトに追加すべきファイル_VC用"」と入力すればよいのでしょうか?、、、 どこにどういった設定を入れるべきか、下記にまとめられていますので、参照下さい。 ■ DXライブラリの使い方解説 https://dxlib.xsrv.jp/dxuse.html
gift-0618

2021/10/25 11:26

教えて頂いたサイトは、コマンドラインを使わずにやる方法(Visual Studioのデバックボタン)ですよね、、、 そちらの方が簡単で、安定なのはわかりますが、今回の質問はclコマンドでどう実行するかを聞きたいです。 何度も質問してしまい、申し訳ありません、、、:-(
Bull

2021/10/25 12:25

cx20 さんが回答ですでに指摘済みですが、リンクエラーの原因はそこではありません。 おそらく DxLib のフォルダーの指定は正しいです。 ライブラリの指定が不足しているので、コマンドラインでコンパイルするときも、Visual Studio のプロジェクトと同じようにライブラリを指定すれば、エラーがなくなるものと思われます。
cx20

2021/10/25 13:30

Bull さん>  補足ありがとうございます。 gift-0618 さん>  説明不足ですみません。  > コマンドラインを使わずにやる方法(Visual Studioのデバックボタン)ですよね、、、  > そちらの方が簡単で、安定なのはわかりますが、今回の質問はclコマンドでどう実行するかを聞きたいです。  Visual Studio での設定方法を案内した意図としては、Bull さんの補足の通りです。  Visual Studio の画面から問題なくコンパイルできるのであれば、コマンドラインでも Visual Studio のライブラリ指定と同様にライブラリ指定を行えば、コンパイルできると思った次第です。  ただ、Visual Studio のプロジェクト設定の画面から得られるコマンドライン引数は膨大で、省略できるものも多々あるかと思います。何が省略できるかは、試行錯誤かとは思います。    なお、今回のケースでは、DxLib のフォルダーの指定は正しいかと思います。  おそらくはコマンドラインでリンクする際に「OleAut32.lib」が含まれていない為に発生していると思われます。何が足りていないかを確認する上でも、Visual Studioのコンパイルオプションの設定は参考になるかと思います。
guest

0

手元に環境が無いので正確にお伝え出来ませんが、VisualStudioのプロジェクトのプロパティにVisualStudioが実際に実行したclのコマンドラインの内容を確認できる箇所があるので、まずはVisualStudioでビルドできるようにして、それを参考にすればよいかと思います。

投稿2021/10/24 11:38

Serbonis

総合スコア586

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

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

gift-0618

2021/10/24 12:21

その項目は何処にあるのか、詳しく教えていただけたら幸いです、、、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問