Microsoft Visual Studio(c、c ++、fortran)で記述されたプログラムをmacOSXに移植しようとしています。このプログラム内には、Fortranソースコードによって呼び出されるc++関数があります。基本的に、そのインターロッピングC++とFortran。C ++関数を"extern C"
角かっこで囲みました。これは、インターネット経由で適切な方法であると言われています。ただし、リンカはまだこのc++関数内の未定義のシンボルについて不平を言っています...
Undefined symbols: "__Z7_getcwdPci", referenced from: _bisimr_ in bisimR.o ld: symbol(s) not found
インターネットを見るgetcwd
と、ヘッダーファイルで定義されている関数です"direct.h"
。これはMacOSの一部ではなく、Windowsシステムにのみ固有のものです。私の知る限り、Windowsの「direct.h」ファイルのように見えるファイルをインターネット上で見つけることができました。
コンテキストが完了したので、ここに私の質問があります
エラーが発生した場合、私のdirect.h
ファイルがWindowsの一部である正しいヘッダーファイルではない可能性がありますか?または、名前マングリング、C ++からFortranに移行して、このエラーをスローしますか?
ノート:
- このエラーをスローするライブラリのリンクであるコンパイル段階を通過できます。
bisimr_
C++関数です