cとfortranの混合プログラミングについての質問です。環境はWindows上でVisual studio 2005/Intel fortran 9.1です。
--c側(ctest6.cpp)
#include <stdio.h>
extern "C" void __stdcall fsub(){
printf("TEST PROGRAM!!\n");
}
--fortran側(ftest6.f90)
PROGRAM MAIN
call FSUB
END
--エラー
ctest6.obj:error LNK2019:未解決の外部シンボル_fsubが関数_mainで参照されました。
ftest6.obj:error LNK2019:未解決の外部シンボル_FSUBが関数_MAIN_で参照されました。
ftest6.exe:fatal error LNK1120:外部参照2が未解決です。
----
__stdcall fsub()"の部分を過去の質問等を参考にし、色々(cのfsubを_fsubやfsub_にしたりと"_"を追加したり)と試してみたりしたのですが、上記のエラーがでてしまいます。fortran側で_FSUBと記入できない点が課題な気がしているのですが、ご教授いただけないでしょうか?
No.3
- 回答日時:
C側の関数名を大文字にしてみれば ・・・
void _declspec( dllexport ) __stdcall FSUB()
といった具合 ・・・
指摘していただいた方法もやってみましたが、原因はfortran側(呼び出される側)をスタティックかダイナミック以外で作成することのようでした。ともかくご回答していただきありがとうございました。
No.1
- 回答日時:
さっそくのご回答ありがとうございます。
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng. …のtetrapodさんのアドバイスで
fortran側はstaticlibrary,SUBROUTINEですので、
extern "C" void ftest6();
extern "C" void ftest6_();
extern "C" void _ftest6();
等試してみましたが、同じエラーでした。
ちなみにビルドは
cl /c ctest6.cpp
ifort ftest6.f90 ctest6.obj /link /out:ftest6.exe
で行っております。
ともかく、ご回答ありがとうございます。もう一度マニュアルを読み込んでみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 未解決の外部シンボル _printfが関数_mainで参照されました 1 2022/09/18 15:28
- その他(プログラミング・Web制作) FORTRAN77の配列(除算) 2 2023/02/01 14:34
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- Perl Perlのエラーについてご教授ください。初心者です。 CGIを別サーバに移したところ、Perlのバー 5 2023/05/31 10:48
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語ソースのオラクルコンパイ...
-
C++の関数をfortranから呼びた...
-
LNK2019: 外部シンボル どのよ...
-
popen・pcloseについて
-
python エラー
-
エクセルのエラーメッセージ「4...
-
アプリケーションのDLLファイル...
-
<unistd.h>をVisualStudioでつ...
-
VBAを何回も作り直して、容量が...
-
C2146を回避するにはどうしたら...
-
unsigned long long 型のフォー...
-
C言語の規格
-
C言語をコンパイルするとコンピ...
-
win32api構造体引数の型指定に...
-
64ビットのlinuxで32ビットメモ...
-
1 つ以上の複数回定義されてい...
-
visual C++ でaruduinoとシリア...
-
cc と gcc の違い
-
” OS ビルド ” の意味が分か...
-
gcc のコンパイラオプションに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
外部依存関係について
-
LNK2019: 外部シンボル どのよ...
-
C++でのエラー LNK2001
-
外部シンボルの未解決のエラー
-
error LNK2001について
-
外部シンボル" ~~"は未解決で...
-
コンパイルエラー
-
OpenCVでの画像サイズ取得につ...
-
LNK2019: 未解決の外部シンボル...
-
エラー 未解決の外部シンボル
-
LNK2001(Pro*c)
-
実行ファイルの容量を減らした...
-
popen・pcloseについて
-
PathIsDirectoryを使って
-
DB2付きのC言語がコンパイルで...
-
C++ の LNK2001エラー
-
CLapack C++
-
外部シンボルについて
-
未解決の外部シンボル
-
VC++ 6.0へのサンプルプログラ...
おすすめ情報