実行ファイルが作成環境以外のPCで実行が出来ません。
現在Windowsプログラミングでアプリケーションを作成しております。
しかし作成した実行ファイルを他のPCで実行しようとすると
[cygwin1.dllが見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールしなおすとこの問題は解決される場合があります。]
とのエラーメッセージが表示され、実行することができません。
恐らくCygwin関係のエラーだとは思うのですが、Cygwinが入っていない環境でも使用できるようにすることは出来ませんでしょうか?
必要そうな情報を下に書いておきます
作成環境:Vista Cygwin
コンパイル:gcc -mwindows a.cpp a.o
実行環境:X Cygwin無し
No.1ベストアンサー
- 回答日時:
Windowに皮を被してunix系のプログラムをほぼそのまま動かそうというのがcygwinです。
cygwin1.dllはその皮です。ですので、cygwin1.dllなしには動きません。
-mno-cygwinオプションでcygwin1.dllに依存しない実行ファイルができますが、たしか、最新のgccでは削られていたと思います。
(先日やろうとして、MinGWを使え、ってメッセージが出ました。その後の確認はしていません)
簡単なものではcygwin1.dllと一緒にコピーするだけで動きますが、複雑なものになると、他のDLLや/usr/share以下のファイルを参照するなどで、cygwin 環境そのものが必要になります。
Cygwinに依存しない実行ファイルを作るなら、他のコンパイラを使うのがいいです。
あと気になるのが
>コンパイル:gcc -mwindows a.cpp a.o
c++コンパイラはg++ですが?
a.cppをコンパイルしたオブジェクトがa.oですが、それとa.oをリンクするって何?
>実行環境:X Cygwin無し
Cygwin無しで動くXサーバーが入っているんですか?
この回答への補足
御回答ありがとうございます。
慌てたので確認せずに質問してしまったようです。
実行環境がXPです・・・抜けてました。
コンパイルは gcc -mwindows acpp b.o です。
windres -i b.rc -o b.o で作成しました。
昔にどこかのサイトを見てコンパイルはずっとこれだったのですが、まずかったですか・・・
g++ -mwindows a.cpp b.o とすれば大丈夫でしょうか。
今まで正常に動作していたのですが、gccで何か問題が発生することがあるのでしょうか?
重ねて質問で申し訳ありません。
お礼が4か月も経ってしまいました。
IDを忘れてしまったためにログインができませんでした、申し訳ありません。
あの後無事に実行することができました。
ご助力いただいた皆様、どうもありがとうございました。
No.3
- 回答日時:
簡単には、cygwin1.dll をEXEファイルとともに配布すればOKです。
cygwinはWindows上でUnix互換環境を提供するものですが、作ったプログラムが、「WindowsのAPIにないUnix独自機能」を使っていないのであれば、他のコンパイラを使えば EXE ファイルだけの配布が出来るようになります。候補としては、他の人が挙げている Mingw か Visual Studio Express。
Unix独自機能を使っているならcygwin1.dllとの同時配布しかありません。
No.2
- 回答日時:
gccは拡張子に応じて勝手に適切なコンパイラ(もちろんインストールされてるのが前提)に処理を投げてくれるので特に間違ってはいませんよ。
どんなプログラムかが謎なのでなんとも言い難いですが、Visual C++2008 Express Editionでコンパイルするとか#1でも出ているにMinGWを使うとかするのがいいんじゃないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら…
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
実行ファイル(.exe)が別のPCで実行できない
C言語・C++・C#
-
アプリの配布方法
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
すべてのリビルド: 0 正常、 0 ...
-
arduinoのエラーメッセージ
-
共有ライブラリの内容確認について
-
Windowsでのスレッド間通信につ...
-
実行後にコンパイルに失敗しま...
-
C言語で作ったらWindowsでもMac...
-
64ビットのlinuxで32ビットメモ...
-
C#で char型とstring型の比較で...
-
Verilog_HDLでのdefineとifdef
-
MinGWでのリンク
-
現場のデバック方法
-
バスエラーとは?
-
SolarisのプログラムをWindows...
-
「インクルードファイル 'pthre...
-
MVSマシンで0C7でABENDしたので...
-
VBで作成したOCXでバージョンが...
-
VS 2010 のコンパイルオプション
-
gccでc++プログラムをコンパイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
すべてのリビルド: 0 正常、 0 ...
-
実行後にコンパイルに失敗しま...
-
c言語です コンパイルした時に...
-
math.hに含まれる関数が使えない
-
[COBOL] ソースの復帰
-
C言語で作ったらWindowsでもMac...
-
C#で char型とstring型の比較で...
-
gcc コンパイル killed
-
64ビットのlinuxで32ビットメモ...
-
共有ライブラリの内容確認について
-
ビープ音が鳴りません・・・
-
自作DLLの中身を暗号化
-
バスエラーとは?
-
VS2010環境で2点ほど質問
-
MVSマシンで0C7でABENDしたので...
-
プレコンパイルの意味を教えて...
-
サクラエディタとコンパイラ
-
Visual Basic.NETの処理速度は6...
おすすめ情報