GPLで、makefile,configure,configure.inなどのある
linux用のC++ソースファイル(一部perlあり)を
minGWでコンパイルしようとすると
perlの方でエラーが出ます。
lang,LC_ALLなどがおかしいと出てきますが
どうしたらいいのでしょうか。
Visual C++ Express Editionでは、
nmakeを使おうとすると区切り記号が
ないというエラーがでます。
強引にGUI(IDE)上でコンパイルしよう
とすると、includeファイルがないと
いうエラーが出ます。
No.4ベストアンサー
- 回答日時:
VC++, gccどちらでやるのが手間かからないか、確実性が高いかというと gccの方が向いている。
VC++ + gmakeという組み合わせでもできるのでVC++使う場合でもnmakeを使う必要はない。
※ CC=CLでVC++のコンパイラを指定すれば十分。
※ makeを勉強して知識増やしたいなら良い事だとは思いますが。(Makefileをnmake用に書き換えるのも)
localeについては、警告でてるけど下記のメッセージがでてるので標準環境に変えてくれてるのでそれ自体には問題ない。
perl: warning: Falling back to the standard locale ("C").
オフィシャルページに書かれている下記から(その下の内容も含めてだけど)
# Implementation
# * C++ with a few C and FORTRAN 77 functions
# * Object-oriented designed throughout
Cygwinでgmake c/c++ fortran(g77) flex bison 等を選択して導入した環境で構築するのが良いかと思う。
※ CygwinかSFU ( Cygwin環境で動作したという報告はもらってると書かれてます[下記ページ])
※ flex bison gmake等は必要(Makefile作り変えるからgmakeの代わりにnmakeなどツールの変更を修正して行なう事は可能)。
http://www.mpqc.org/talks/compile/img2.html
http://www.mpqc.org/talks/compile/index.html
この回答への補足
./configure
でかなり進みましたが
blasがないという警告が出ます。
atlasやlapackのダウンロードは
可能なのですが、
ビルドして実行するとcygwin1.dllがない
というエラーが出てcygwin1.dllを
入れても別のエラーが出ます。lapackはビルドすらできません。
(プロシージャが見つからないといったものです)
また、ビルドが成功したら、libフォルダに
入れればいいのでしょうか。
unixに関する知識が少ないため基本的なことが
分からなくて申し訳ありません。
WARNING: Could not link to the BLAS library. It can be obtained at
http://www.netlib.org/blas. Use --with-libdirs and/or --with-libs
to specify the name of the library.
configure: error: BLAS is required to complete the build
BLASはインストールできましたが、次のようなエラーが出ます。
messshm.cc: In member function ‘void sc::ShmMessageGrp::initialize(int)’:
messshm.cc:173: error: ‘SHM_R’ was not declared in this scope
messshm.cc:173: error: ‘SHM_W’ was not declared in this scope
make[4]: *** [messshm.o] Error 1
make[4]: Leaving directory `/cygdrive/d/mpqc-2.3.1/src/lib/util/group'
make[3]: *** [default] Error 1
make[3]: Leaving directory `/cygdrive/d/mpqc-2.3.1/src/lib/util'
make[2]: *** [default] Error 1
make[2]: Leaving directory `/cygdrive/d/mpqc-2.3.1/src/lib'
make[1]: *** [default] Error 1
make[1]: Leaving directory `/cygdrive/d/mpqc-2.3.1/src'
make: *** [default] Error 1
あと、ATLASもGPLなのですか。
f77を持っていないので強引にgfortranを使いました。
No.3
- 回答日時:
・make configure が必要かどうか、若干疑問。
大抵は ./configure で十分
・「perl: warning: Setting locale failed.」で検索かければ、理由も対策もわかる。
MinGW上のPerlを実行しているのだから、Linux/bashでのやり方がそのまま使えるはず
・後半の警告は autoconfを使用しての configure.inからconfigureを作成する際に出ている警告。
autoconfのバージョンとconfigure.inの対応が合ってないか、configure.inの記述に問題があるのかは調べてないのでわからない。
警告を読むと、キャッシュに関するものなので、無視してもよさそう。
・ ./configure で設定したり調査した結果に合わせてMakefileが作成される。
この時に、必要なオプションやファイルを指定してコンパイルを行うようにMakefileが作られる。
(コンパイラのコマンド名、依存するincludeファイルの場所を指定する-Iや、リンク時のライブラリを指定する-l 等)
Makefileの文法を勉強してGNU Make→nmakeに単純に変換したところで、上のような設定がそのままでは意味がない。
nmake用、あるいはVisual Studioのプロジェクトを作成する configure相当のプログラムが無いと。
No.2
- 回答日時:
> mpqcというGPLの量子化学計算ソフトです。
> エラーメッセージは、minGWでは、
> 以下のものです、長いので、お礼の方と
> 分けて書きます。
警告とエラーは違いますよ。
環境変数はWindowsでも設定できますので設定すれば良いかと。
ただし、minGWでコンパイルしても動かない可能性が大きいです。
http://www.mpqc.org/
上記ページに下記の通り書かれています。
Platforms
* Unix Workstations (Intel/Linux, RS/6000, SGI/IRIX)
* Symmetric multi-processors (Intel/Linux, SGI/IRIX)
* Massively parallel (IBM SP, Intel Paragon)
Windows上で動かすなら、CygwinかSFU上(Windows上のUNIXサービスが使える環境)で行わないとUNIX系のシステムを使おうとして動かない可能性が非常に高いかと思います。
> Visual C++ Express Editionでは、
GNU makeの書式はかなり独特(独自の拡張多し)なので、他のmakeで動くようにするにはMakefileの修正は必須です。
また、MS VCは基本的にC89なのでgcc使って(C99)るソースだと書き換えが必要となる部分もありそうです。
ありがとうございました。
Cygwinでやってみますが
その前にMakefileの
書き方を勉強します。
GNU MAKEは書籍になってしまう
ほど内容が多いので。
No.1
- 回答日時:
せめて
・その「Linux 用の C++ ソースファイル」とは何なのか
・エラーメッセージは正確にどうなっているのか
くらい書いてほしい.
この回答への補足
mpqcというGPLの量子化学計算ソフトです。
エラーメッセージは、minGWでは、
以下のものです、長いので、お礼の方と
分けて書きます。
$ make configure
aclocal -I lib/autoconf
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LC_ALL = (unset),
LANG = "ja"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LC_ALL = (unset),
LANG = "ja"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
configure.in:1751: warning: AC_CACHE_VAL(lt_prog_compiler_pic_works, ...): suspcious cache-id, must contain _cv_ to be cached
/usr/src/packages/autoconf/26/autoconf2.5-2.67-1/src/autoconf-2.67/lib/autoconfgeneral.m4:2019: AC_CACHE_VAL is expanded from...
/usr/src/packages/autoconf/26/autoconf2.5-2.67-1/src/autoconf-2.67/lib/autoconfgeneral.m4:2040: AC_CACHE_CHECK is expanded from...
lib/autoconf/libtool.m4:658: AC_LIBTOOL_COMPILER_OPTION is expanded from...
lib/autoconf/libtool.m4:4895: AC_LIBTOOL_PROG_COMPILER_PIC is expanded from...
lib/autoconf/libtool.m4:2731: _LT_AC_LANG_C_CONFIG is expanded from...
lib/autoconf/libtool.m4:2730: AC_LIBTOOL_LANG_C_CONFIG is expanded from...
lib/autoconf/libtool.m4:80: AC_LIBTOOL_SETUP is expanded from...
lib/autoconf/libtool.m4:60: _AC_PROG_LIBTOOL is expanded from...
lib/autoconf/libtool.m4:25: AC_PROG_LIBTOOL is expanded from...
続きます。
続きです。
configure.in:1751: the top level
configure.in:1751: warning: AC_CACHE_VAL(lt_prog_compiler_static_works, ...): sspicious cache-id, must contain _cv_ to be cached
lib/autoconf/libtool.m4:703: AC_LIBTOOL_LINKER_OPTION is expanded from...
configure.in:1751: warning: AC_CACHE_VAL(lt_prog_compiler_pic_works_CXX, ...): uspicious cache-id, must contain _cv_ to be cached
lib/autoconf/libtool.m4:2812: _LT_AC_LANG_CXX_CONFIG is expanded from...
lib/autoconf/libtool.m4:2811: AC_LIBTOOL_LANG_CXX_CONFIG is expanded from...
lib/autoconf/libtool.m4:1867: _LT_AC_TAGCONFIG is expanded from...
configure.in:1751: warning: AC_CACHE_VAL(lt_prog_compiler_static_works_CXX, ...: suspicious cache-id, must contain _cv_ to be cached
configure.in:1751: warning: AC_CACHE_VAL(lt_prog_compiler_pic_works_F77, ...): uspicious cache-id, must contain _cv_ to be cached
lib/autoconf/libtool.m4:3979: _LT_AC_LANG_F77_CONFIG is expanded from...
lib/autoconf/libtool.m4:3978: AC_LIBTOOL_LANG_F77_CONFIG is expanded from...
configure.in:1751: warning: AC_CACHE_VAL(lt_prog_compiler_static_works_F77, ...: suspicious cache-id, must contain _cv_ to be cached
configure.in:1751: warning: AC_CACHE_VAL(lt_prog_compiler_pic_works_GCJ, ...): uspicious cache-id, must contain _cv_ to be cached
lib/autoconf/libtool.m4:4081: _LT_AC_LANG_GCJ_CONFIG is expanded from...
lib/autoconf/libtool.m4:4080: AC_LIBTOOL_LANG_GCJ_CONFIG is expanded from...
configure.in:1751: warning: AC_CACHE_VAL(lt_prog_compiler_static_works_GCJ, ...: suspicious cache-id, must contain _cv_ to be cached
autoconf
configure.in:1751: warning: AC_CACHE_VAL(lt_prog_compiler_pic_works, ...): suspcious cache-id, must contain _cv_ to be cached
/usr/src/packages/autoconf/26/autoconf2.5-2.67-1/src/autoconf-2.67/lib/autoconfgeneral.m4:2019: AC_CACHE_VAL is expanded from...
/usr/src/packages/autoconf/26/autoconf2.5-2.67-1/src/autoconf-2.67/lib/autoconfgeneral.m4:2040: AC_CACHE_CHECK is expanded from...
lib/autoconf/libtool.m4:658: AC_LIBTOOL_COMPILER_OPTION i
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- C言語・C++・C# エラー: ‘inval’ の記憶サイズが不明です。 union semun inival; というエ 2 2023/01/16 22:04
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- UNIX・Linux VirtualBox ゲストOSにPC内蔵HDDのパーティションをマウントする方法は? 2 2023/05/06 22:52
- C言語・C++・C# ExcelCS 1 2023/01/27 19:47
- PostgreSQL PostgreSQL14.6のSSL対応について 1 2023/01/05 15:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
戻り値について
-
VBAを何回も作り直して、容量が...
-
ILSpyで、デコンパイルできない。
-
「fatal error C1189」を回避す...
-
windowsでLinuxで作成したソー...
-
” OS ビルド ” の意味が分か...
-
複数のサブディレクトリを一緒...
-
<math.h>があるのにsqrtが・...
-
コンパイルエラー:ユーザ定義...
-
漢字のコメントをはずすとコン...
-
エクセルVBAではRound...
-
C言語でmからnまでの合計を求め...
-
C++コンパイル時に『 C1083: in...
-
必要なDBG ファイルが見つから...
-
マクロ コンパイルがグレーバック
-
gdbデバッグのためのmakefile作成
-
不要な #include
-
RPGでプログラムからソースファ...
-
共有ライブラリの関数はヘッダ...
-
Makefile作成時の拡張子.oとは?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAを何回も作り直して、容量が...
-
<math.h>があるのにsqrtが・...
-
” OS ビルド ” の意味が分か...
-
Makefile作成時の拡張子.oとは?
-
「fatal error C1189」を回避す...
-
1 つ以上の複数回定義されてい...
-
ILSpyで、デコンパイルできない。
-
C言語でヘッダファイルにグロー...
-
エクセルVBAではRound...
-
セミコロンについて
-
マクロ コンパイルがグレーバック
-
C++コンパイル時に『 C1083: in...
-
外部シンボル "_main"は未解決です
-
PRO*C コンパイルエラー
-
コンパイルエラー:ユーザ定義...
-
クリティカルエラー Expressio...
-
ビルドとリビルドの違いを教え...
-
RPGでプログラムからソースファ...
-
戻り値について
-
C++のhppファイルをCでinclude
おすすめ情報