
実行ファイルが作成環境以外の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で質問しましょう!
似たような質問が見つかりました
- ドライブ・ストレージ Android端末でSDカードが機能しなくなりました 6 2023/02/17 17:20
- Word(ワード) PCで作ったwordをスマホで編集しようとすると「このファイルは読み取り専用です。」と表示される。 3 2023/05/30 14:51
- その他(セキュリティ) 役所など、情報系システムのセキュリティが弱くても業務システムに問題ないか 3 2022/11/02 16:38
- Windows 10 WindowsUpdateで再起動を阻止したいです 3 2023/03/15 22:41
- ルーター・ネットワーク機器 通信量や通信量による影響を計算し想定できますか 3 2023/01/13 09:07
- その他(クラウドサービス・オンラインストレージ) Onedriveで実現したい事。2台のPC間で。 2 2023/04/10 20:42
- Microsoft ASP C#からvbsを実行したい 5 2022/11/24 17:31
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- その他(OS) windows11非対応のインストール 3 2022/10/26 07:12
- ソフトウェア 移行PCにDockerがインストールされていても各種開発環境のアプリはインストールが必要? 2 2023/05/21 21:53
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アプリケーションのDLLファイル...
-
<unistd.h>をVisualStudioでつ...
-
GNUは、初心者で質問させて頂き...
-
vba コンパイル
-
Verilog_HDLでのdefineとifdef
-
C#のネイティブコンパイルの方...
-
コマンドプロンプト cをコンパ...
-
signal関数について
-
MinGWでのリンク
-
PIC同士のシリアル通信について
-
windowPCにてlinux的なことをやる
-
別々に作ったプログラムを繋げたい
-
クイックソート後の出力(pascal)
-
Borland C++3.1とTurboAssemble...
-
VB.netについて質問です。(2つ)
-
linux-fedora14でgcc-c++を
-
64ビットアプリケーションの配布
-
64bit環境で32bitでコンパイル...
-
cygwin1.dll を必要としないCの...
-
実行ファイルが作成環境以外のP...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
実行後にコンパイルに失敗しま...
-
math.hに含まれる関数が使えない
-
シリアル通信の受信待ちについて
-
ビープ音が鳴りません・・・
-
C#で char型とstring型の比較で...
-
c言語です コンパイルした時に...
-
共有ライブラリの内容確認について
-
すべてのリビルド: 0 正常、 0 ...
-
64ビットのlinuxで32ビットメモ...
-
C言語で作ったらWindowsでもMac...
-
MS-BASICの逆コンパイルについて
-
<math.h>ヘッダを入力している...
-
ヘッダーファイル『windows.h』...
-
プレコンパイルの意味を教えて...
-
Verilog_HDLでのdefineとifdef
-
[COBOL] ソースの復帰
-
gcc バージョン違いによるコン...
-
同じEXE・同じファイルで解析結...
おすすめ情報