
Linuxで作成、
$gcc -Wall file.c
で、通ったファイルをWindowsでも同様に通したいので、MinGWを使って、コンパイルしたのですが、
#include <sys/socket.h>
の構文で引っかかってしまいました。どうやらインクルードファイルが無いようでしたので、
C:\MinGW\include
C:\MinGW\lib
以下に、Linuxの
/usr/include/
/usr/lib/
以下のファイルをそのまま入れて、再度実行しました。
ヘッダーファイルは見つけて読んでくれたのですが、そのヘッダーファイルに書いてある関数(例:htons(), socket(), inet_addr(), connect())が参照できないとの事で、怒られてしまいます。
Linuxのライブラリファイルをそのまま入れたのがまずかったのかもしれないのですが、こいつのエラーを解消する有効手段が見つかりません。
問題解決のヒント、又は答えを教えていただけませんでしょうか。
どうか、お願い致します。
No.4ベストアンサー
- 回答日時:
Unix と Windows ネイティブな環境では基本的にヘッダファイルやライブラリの構造が、基本骨格 (いわゆる、stdio.h や stdlib.h などに含まれている関数) を除いては大きく異なっているので、Unix でコンパイルできたプログラムが必ずしも Windows でコンパイルし、実行できるわけではありません。
(もちろん、その逆も当てはまります)MinGW は Windows ネイティブな実行プログラムを作成するものなので、MinGW でコンパイルする場合はちゃんと Windows 用のプログラムとして書かなければなりません (#2の方が書かれているように、socket.h ではなく、winsock2.h を使用するなど)。もし、Unix にのみ対応したプログラムを Windows 上で動かしたいと言うことであれば、Cygwin (要するに Unix 関数の処理を Windows ネイティブな処理に変換するエミュレータ) を利用する必要があります。
No.3
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MO, PO, POT, ファイルの開き方...
-
” OS ビルド ” の意味が分か...
-
gcc で シフトJISを通す方法を...
-
[c++] <pthread.h>がinclude で...
-
FindFirstFileについて教えてく...
-
PICの__CONFIGのラインについて
-
extern "C" の利用方法に関して
-
NETCOBOLのサブプログラムについて
-
python エラー
-
DLLファイルの逆コンパイラにつ...
-
unsigned long long 型のフォー...
-
ASP.NETのDLL入れ替えについて
-
バッチからsqlplusの接続エラー...
-
multiple definitionというエラー
-
DXライブラリ3D導入方法
-
WindowsからLinuxへの移植
-
SQLServerについて
-
適切な変換関数が存在しない???
-
vb ver6 でformat文やTrim文の...
-
Visual Basic.NETの処理速度は6...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
” OS ビルド ” の意味が分か...
-
Makefile作成時の拡張子.oとは?
-
VBAを何回も作り直して、容量が...
-
エクセルVBAではRound...
-
マクロ コンパイルがグレーバック
-
C言語でヘッダファイルにグロー...
-
ILSpyで、デコンパイルできない。
-
【VC++6.0(MFC)】警告「LINK : ...
-
「fatal error C1189」を回避す...
-
1 つ以上の複数回定義されてい...
-
クリティカルエラー Expressio...
-
動的な変数名のつけ方について
-
C言語のコンパイルができません
-
C++コンパイル時に『 C1083: in...
-
セミコロンについて
-
他のLinuxでも動くa.outの作り方
-
includeと#include
-
ビルドとリビルドの違いを教え...
-
コンパイルエラー:ユーザ定義...
-
MFCのエラーについて
おすすめ情報