dポイントプレゼントキャンペーン実施中!

C++の関数をfortranから呼びたい。(intelFortran, g++)

いつもお世話になっています。

現在WindowsXP上で、MinGWのC++コンパイラのg++と
intelFortranのifortコマンドを使用して、
fortranからc++関数を呼ぼうとしていますが
リンクできません。

ソースは以下で紹介したものをそのまま使用しています。
http://oshiete.goo.ne.jp/qa/5806443.html

手順は、
D:\C>ifort -c helloFortran.f
D:\C>g++ -c funcHelloC.cpp
D:\C>ifort helloFortran.obj funcHelloC.o

結果は、
error LNK2019: 未解決の外部シンボル*****が関数****
で参照されました。
と数行出力されています。

お手数ですが、よろしくお願いします。

A 回答 (11件中11~11件)

その「未解決の外部シンボル」とやらが解決できるように, 何かを追加すればいいのでは?


何を追加すればいいのかは知らんので, 自分で調べてくれ.
「お手数ですが、よろしくお願いします。」と書くくらいなら, 自分でどこまで調べたのかを書く方が印象がいいと思うよ. もっとはっきり言うと, これまでの質問を見るとあなたは「分からないことを自分でまったく調べない」ように見えてしまう.

この回答への補足

ご回答有難うございます。

調べているのですが、なかなか自分のほしい解答を見つからなかったため、
本サイトを利用させて頂いております。
(個人的なことですが、intelFortranが動いているマシンが
 外部に接続できる環境にないため、詳細なことを
 書けずに質問してしまいました。)

また、メモを取れないので、うろ覚えで書きますと
LNK2019のエラーで「funchelloがmainで参照された」というものを含め計5つと、
LNK1120のエラー「外部参照が5つあります」、
みたいな事をいわれました。

リンクエラーだと思って、
>ifort helloFortran.obj funcHelloC.o -lstdc++
をやってみたり(失敗に終わっています。)
>ifort helloFortran.obj funcHelloC.o -lstdc++ -LC:\MinGW\lib
をやってみたりしています。(失敗に終わっています。)
(マニュアルで掲載されていたlinkというコマンドも試してみました。)

本件とはちょっと反れますが、リンクが成功する
>f77 helloFortran.obj funcHelloC.o -lstdc++
をやった場合、C:\MinGW\lib内のlibstdc++.aを
見に行っているのでしょうか?

補足日時:2010/04/12 00:28
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!