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

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

ただいまの
回答率

87.37%

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

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 299

score 13

やりたこと

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

説明

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

試したこと

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

cl 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: 未解決の外部シンボル impVariantInit@4 が関数 "int __cdecl DxLib::IsXInputDevice(struct _GUID const *)" (?IsXInputDevice@DxLib@@YAHPBU_GUID@@@Z)  で参照されました
main.exe : fatal error LNK1120: 1 件の未解決の外部参照

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

最後に

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2021/10/25 21:30

    複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という意見がありました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

回答 2

checkベストアンサー

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 impVariantInit@4 referenced in function

OleAut32.lib which contains:
   VariantInit

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2021/10/25 20:26

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

    何度も質問してしまい、申し訳ありません、、、:-(

    キャンセル

  • 2021/10/25 21:25

    cx20 さんが回答ですでに指摘済みですが、リンクエラーの原因はそこではありません。
    おそらく DxLib のフォルダーの指定は正しいです。

    ライブラリの指定が不足しているので、コマンドラインでコンパイルするときも、Visual Studio のプロジェクトと同じようにライブラリを指定すれば、エラーがなくなるものと思われます。

    キャンセル

  • 2021/10/25 22:30

    Bull さん>
     補足ありがとうございます。

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

    キャンセル

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2021/10/24 21:21

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

    キャンセル

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

  • ただいまの回答率 87.37%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る