ドキュメントに従ってOpenFASTをコンパイルしようとしました。 すべての手順を1つずつ実行しましたが、実際のコンパイルを実行しようとすると、CMakeは次のように失敗します。
$ FC=gfortran cmake ../
-- The CXX compiler identification is GNU 6.4.0
-- The C compiler identification is GNU 6.4.0
-- The Fortran compiler identification is GNU 6.4.0
-- Check for working CXX compiler: /usr/bin/c++.exe
-- Check for working CXX compiler: /usr/bin/c++.exe -- broken
CMake Error at /usr/share/cmake-3.6.2/Modules/CMakeTestCXXCompiler.cmake:54 (message):
The C++ compiler "/usr/bin/c++.exe" is not able to compile a simple test
program.
It fails with the following output:
Change Dir: /home/FejPau/code/OpenFAST/build/CMakeFiles/CMakeTmp
Run Build
Command:"/cygdrive/c/opal-rt/rt-lab/v11.2.1.100/common/bin/gmake.exe"
"cmTC_af8f7/fast"
C:\opal-rt\rt-lab\v11.2.1.100\common\bin\gmake.exe -f
CMakeFiles/cmTC_af8f7.dir/build.make CMakeFiles/cmTC_af8f7.dir/build
gmake.exe: command not found: /bin/sh
gmake.exe: *** [cmTC_af8f7/fast] Error 0x7f
CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:18 (project)
-- Configuring incomplete, errors occurred!
See also "/home/FejPau/code/OpenFAST/build/CMakeFiles/CMakeOutput.log".
See also "/home/FejPau/code/OpenFAST/build/CMakeFiles/CMakeError.log".
CMakeOutput.logとCMakeError.logを添付しました。
奇妙なことに、CMakeError.logを見ると、 C:\opal-rt\rt-lab\v11.2.1.100\common\bin\gmake.exe
からgmake.exeが呼び出されます。 このフォルダをPATH環境変数から削除しようとしましたが、それでもそこからgmake.exeを実行しようとします。
別のプロジェクトでrt-labが必要なため、アンインストールできません。
他に何を試すことができますか?
GNU gcc
およびg++
コンパイラがインストールされていますか? もしそうなら、あなたはCMakeにgfortran
を使うように頼んだのと同じようなものを使うように微調整することができます
CC=gcc CXX=g++ FC=gfortran cmake ../
これを試しましたが、同じエラーが発生します。
編集:プロキシ設定のためにCygwinのインストール中に、 http://www.gtlib.gatech.eduと直接接続を選択せずに、別のミラーからインストールしたことを付け加えるかもしれません。 しかし、私はこれが何の違いももたらさないはずだと思います...
@pfeja CMakeCache.txt
を調べることで、CMakeが使用しているコンパイラを確認できます。 例えば、
mbp@~/Development/openfast/build: grep -ni "cxx_compiler" CMakeCache.txt
87:CMAKE_CXX_COMPILER:FILEPATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
603://ADVANCED property for variable: CMAKE_CXX_COMPILER
604:CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
期待するc++コンパイラを実際に使用していることを確認できますか?
CMakeがgccを取得しなかった場合は、 CMakeCache.txt
を削除して、CMakeを再度実行してみてください。
また、参考までに、 cmake_c_compiler
とcmake_fortran_compiler
を検索すると、他のコンパイラも表示されます。
opal-rtディレクトリの名前を一時的に変更し、 CMakeCache.txt
ファイルを削除し、推奨設定でcmake
を実行した後、さらに-DCMAKE\_INSTALL\_PREFIX:PATH=$HOME/software
を使用すると、コンパイルして実行されます。 Cygwinシェル。
しかし、コントロールパネルのPATH
にC:\cygwin64\lib\lapack
とC:\cygwin64\home\FejPau\software\bin
を追加し、コマンドプロンプトからopenfast -h
を実行しようとすると、すべてが見つからないと文句を言います。 cygwin1.dll
のようなCygwinDLLファイル
編集: PATH
にC:\cygwin64\bin
も追加しましたが、何も変更されませんでした。
私は今何が欠けていますか?
コマンドプロンプトからopenfastを実行するための回避策を作成しました。 .shスクリプトを作成しました#!/bin/bash
openfast $@
および対応する.batファイルbash run_openfast.sh myfile.fst
これは役に立ちますが、問題自体は解決しません。 これについて何かアイデアはありますか?
@pfeja WindowsコマンドプロンプトからCygWinでコンパイルしたOpenFAST実行可能ファイルを実行しようとしていることを正しく理解していますか?
その場合、CygWinターミナル内でCygWinによってコンパイルされたものを実行する必要があります。 これはCygWinのWebサイトからのものです:
Cygwin is not:
a way to run native Linux apps on Windows. You must rebuild your application from source if you want it to run on Windows.
a way to magically make native Windows apps aware of UNIX® functionality like signals, ptys, etc. Again, you need to build your apps from source if you want to take advantage of Cygwin functionality.
最後の問題は、cmdがcygwindllを見つけられないパス構成の問題のように見えます。
この問題は解決されたと思いますので、閉じますが、 @ pfejaは、必要に応じて、もう一度開いてください。
最も参考になるコメント
GNU
gcc
およびg++
コンパイラがインストールされていますか? もしそうなら、あなたはCMakeにgfortran
を使うように頼んだのと同じようなものを使うように微調整することができます