現在、mingwで94個のプログラムをコンパイルするのにGNUMAKEを使っています。
make all で登録されたプログラムを全コンパイルすると、
その過程で133個のオブジェクトファイルが作られるのですが、途中で次のようなエラーが発生することがあります。
「することがある」というのが厄介な点で、ソースコードを一切変更せずに同じ操作をしても、
エラーが出るタイミングが違うのです。
まったくエラーの出ないこともありますが、たいがいは中盤で次のようなメッセージを出力して停止します。
gcc --input-charset=cp932 --exec-charset=cp932 -Wall -s -O3 -Os -c -o atgc_ratio.obj atgc_ratio.c
gcc --input-charset=cp932 --exec-charset=cp932 -Wall -s -O3 -Os -c -o Lib-atgc_count.obj Lib-atgc_count.c
gcc -Os -o atgc_ratio.exe atgc_ratio.obj Lib-klonoa.obj Lib-arg2.obj Lib-strdata.obj Lib-log.obj Lib-strdata2.obj Lib-atgcarryget2.obj Lib-atgc_count.obj Lib-file.obj Lib-calender.obj Lib-command.obj
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: reopening atgc_ratio.exe: Permission denied
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: final link failed: Permission denied
collect2.exe: error: ld returned 1 exit status
make: *** [atgc_ratio.exe] Error 1
上記の例ですと、atgc_ratio.exe をコンパイルしている最中に、「Permission denied」なるものが発生し、makeが動作停止しているものと解釈しております。
再度make all すると何事も無かったかのようにatgc_ratio.exeに必要なオブジェクトファイルをリンクして作業を続行します。
borland C++ compiler 5.5.1(古い!!)でも時たま同じようなエラーが発生するようですが、
そもそもこっちは12年前からバージョンアップしてないので、しょうがないかな?と思います。
一応、-Wall で無警告になるようメンテナンスはしているので、ソースコード自体の問題ではないと思います。
何らかのソフトがファイルをロックしているのかと思い、とりあえずアンチウィルスソフトを一時的に停止してみましたが、
やはりエラーは出ました。
マルチスレッドの問題?とも思ったのですが、マルチスレッドとかマルチコアなどの分野に手を出したことがありませんので見当がつかない状態です。
また最近シングルCPUのWinXP環境から
Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz のWin7(32ビット)に移行したばかりで、
マルチCPUなどの使用経験も非常に浅いので、windowsの問題か、コンパイラの問題か、makeなど開発環境の問題か、原因の切り分けができておりません。
これらの問題の原因や対策について詳しい方、ご教授いただければと思います。
現在の環境を次にまとめます。
OS:Windows 7 Professional 32ビット版 (Serbice Pack1)
開発環境:mingw 4.7.2 (mingw-get-inst-20120426.exe を使って最新版をダウンロードしたもの)
コンパイラ:gcc 4.7.2
リンカ:GNU ld (GNU Binutils) 2.23.1
make:GNU Make 3.81
gcc -v の結果
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.7.2/lto-wrapper.exe
Target: mingw32
Configured with: ../gcc-4.7.2/configure --enable-languages=c,c++,ada,fortran,obj
c,obj-c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared --enable-libgo
mp --disable-win32-registry --enable-libstdcxx-debug --disable-build-poststage1-
with-cxx --enable-version-specific-runtime-libs --build=mingw32 --prefix=/mingw
Thread model: win32
gcc version 4.7.2 (GCC)
make -v の結果
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for i686-pc-msys
オブジェクトのコンパイルには次のコマンドを使っています。
gcc --input-charset=cp932 --exec-charset=cp932 -Wall -s -O3 -Os -c -o
リンクには次のコマンドを使っています。
gcc -Os -o
なお、gccはデフォルトではオブジェクトファイルの拡張子を.oにしますが、
borland C++ も使う関係で、-oオプションでファイル名を直接指定して拡張子を統一しています。
どうかよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) python flask から fastapiへの移行時のエラー対処 1 2023/02/05 12:26
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- PostgreSQL PostgreSQL14.6のSSL対応について 1 2023/01/05 15:42
- C言語・C++・C# exeファイルが作れない(windows10) 6 2022/08/13 08:47
- オープンソース Vue+Laravelのデザインテンプレートのサンプルが起動できない 1 2022/05/18 21:52
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- その他(プログラミング・Web制作) python fbprophetについて 1 2022/09/29 19:44
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- サーバー WindowsでApache が起動しない 1 2022/11/29 12:21
- UNIX・Linux AWSのEC2のZabbixユーザーでawscliコマンドが実行できない状態を解決する 1 2022/12/06 22:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<math.h>があるのにsqrtが・...
-
VBAを何回も作り直して、容量が...
-
1 つ以上の複数回定義されてい...
-
Makefile作成時の拡張子.oとは?
-
” OS ビルド ” の意味が分か...
-
outportb関数について
-
「fatal error C1189」を回避す...
-
セミコロンについて
-
エクセルVBAではRound...
-
ILSpyで、デコンパイルできない。
-
LNK1210が出て困っています。
-
C言語でヘッダファイルにグロー...
-
OpenCVを Borland C++ Builder...
-
コンパイル??
-
クリティカルエラー Expressio...
-
Win7 64bit のPCが'X86'と誤認識?
-
逆コンパイル??
-
Fortranについて教えてください
-
複数のサブディレクトリを一緒...
-
C言語でmからnまでの合計を求め...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
” OS ビルド ” の意味が分か...
-
VBAを何回も作り直して、容量が...
-
「fatal error C1189」を回避す...
-
C言語でヘッダファイルにグロー...
-
Makefile作成時の拡張子.oとは?
-
エクセルVBAではRound...
-
1 つ以上の複数回定義されてい...
-
コンパイルエラー:ユーザ定義...
-
セミコロンについて
-
ILSpyで、デコンパイルできない。
-
[c++] <pthread.h>がinclude で...
-
クリティカルエラー Expressio...
-
マクロ コンパイルがグレーバック
-
PRO*C コンパイルエラー
-
外部シンボル "_main"は未解決です
-
他のLinuxでも動くa.outの作り方
-
<math.h>があるのにsqrtが・...
-
戻り値について
-
pyc 編集 閲覧
-
C++コンパイル時に『 C1083: in...
おすすめ情報