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

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

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

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

コンパイラ

コンパイラは、プログラミング言語で記述したソースコードを、コンピュータの実行形式であるオブジェクトコードに変換するプログラムです。

C++

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

Q&A

解決済

3回答

2056閲覧

clコンパイラ [ファイルが無効であるか、または壊れています 1107] エラーはどういう意味なのか?

退会済みユーザー

退会済みユーザー

総合スコア0

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

コンパイラ

コンパイラは、プログラミング言語で記述したソースコードを、コンピュータの実行形式であるオブジェクトコードに変換するプログラムです。

C++

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

0グッド

0クリップ

投稿2020/10/29 13:20

提示画像ですがこのエラーメッセージはどういう意味なのでしょうか? [ファイルが無効であるか、または壊れています 1107]
問題が起きているbullet.hppを確認しましたが何も問題はなくVisual studio 2019ではコンパイル出来たのでコンパイルエラーではないと思われます。

イメージ説明

#ifndef ___BULLET_HPP_ #define ___BULLET_HPP_ //自作ヘッダー 関係 #include "Sprite.hpp" #include "Fps.hpp" //#include "Stage.hpp" //標準ヘッダー関係 #include "stdio.h" #include <fstream> #include <sstream> #include <iostream> #include <vector> #include <time.h> #include <random> //OpenGL関係 #include "GLEW/include/GL/glew.h" #include "gl/GL.h" #include "GLFW/include/GLFW/glfw3.h" //数学ライブラリ #include "glm/ext.hpp" #include <glm/ext/vector_int2.hpp> #define BULLET_MAX ((int)500) //弾のデータ class Stage_Object; class Bullet_Data { public: Bullet_Data() { } bool isAlive; //存在しているかどうか? bool isHit; //着弾したかどうか? glm::ivec2 Pos; //弾の座標 glm::ivec2 Vec; //弾の飛んでいく向き glm::ivec2 Col_Size;//当たり判定の大きさ Stage_Object* HitObject; void Reset() { } }; class Bullet { public: Bullet(Game* g, Sprite* sp[], Sprite* hit[]); ~Bullet(); void Draw(); void Update(); void Shooting(int x, int y, int vX, int vY); Bullet_Data* getBulletData(int i); //当たり判定の大きさ const glm::ivec2 mCol; private: Bullet_Data* mBullet[BULLET_MAX]; //弾データ std::vector<Sprite*>* mHitEffect; //ヒットエフェクト std::vector<Sprite*>* mBullet_pic; //弾自体の画像 Game* mOwner; //Gameクラス }; #endif

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

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

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

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

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

guest

回答3

0

ベストアンサー

cl コマンドは .c .cpp .cc .cxx などの C/C++ のソース以外の拡張子のファイル (例えば .obj .res .lib など) は、そのままリンカーに渡します。
リンカーでは .hpp は処理できないので、エラーになります。

そもそも、ヘッダーファイル (.hpp) はコンパイルするものではないので、コンパイル対象から外せばいいかと思います。

投稿2020/10/29 13:49

Bull

総合スコア986

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

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

0

こんにちは。

コマンド・ラインがないので定かではないのですが、リンカに直接 hpp を渡しているということはないでしょうか?

投稿2020/10/29 13:29

Chironian

総合スコア23272

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

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

退会済みユーザー

退会済みユーザー

2020/10/29 13:34 編集

cl *.cpp *.hpp *.c *.h というコマンドで実行しました。
pepperleaf

2020/10/29 13:56

そのディレクトリにある *.cpp, *.hpp, *.c, *.h 全てがコンパイル対象となりますが、良いですか? ふつうは、特定の cppだけかと思いますが、、。 (.hpp, .h は .cpp または、.c 内で呼び出される)
guest

0

これはコンパイラではなく、リンカが出しているエラーです
どうもライブラリファイルの設定の中にhppファイルが紛れ込んでいるようです。
リンカでは、ライブラリかオブジェクトファイルしか受け付けません。
そこらへん確認してみよう。

投稿2020/10/29 13:35

y_waiwai

総合スコア88042

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

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

退会済みユーザー

退会済みユーザー

2020/10/29 13:36

どうすればいいのでしょうか?
y_waiwai

2020/10/29 13:37

リンカ設定で、ライブラリファイルの設定はどうなってますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問