-qextname オプションが BIND(C) エンティティーに影響するかどうか制御します。
.-bindcextname---. >>- -q--+-nobindcextname-+-------------------------------------><
@PROCESS:
@PROCESS BINDCEXTNAME | NOBINDCEXTNAME
-qbindcextname
-qextname オプションおよび BIND(C) 属性は、C での使用を可能にするため、Fortran のグローバル・エンティティーの名前を変更する 2 つの方法です。
NAME= 指定子を使用して、インターフェース・ブロックに BIND(C) バインディング・ラベルを 明示的に指定した場合、コンパイラーは、-qextname および -qbindcextname オプションに関係なく、 プロシージャーへの呼び出しでこのバインディング・ラベルを使用します。
NAME= 指定子を使用して、BIND(C) バインディング・ラベルを インターフェースが明示的に指定しない場合、コンパイラーは暗黙的なバインディング・ラベルを作成します。-qextname オプションも指定した場合、 コンパイラーは -qbindcextname オプションが有効な場合のみ、暗黙的なバインディング・ラベルに下線を付加します。
BIND(C) プロシージャーを宣言するコンパイル単位に対して -qextname および -qbindcextname オプションを 指定した場合、バインディング・ラベルが明示的に指定されていても、コンパイラーはそのバインディング・ラベルに下線を付加します。
interface
integer function foo() bind(c)
end funciton
integer function bar()
end function
end interface
print *, foo()
print *, bar()
end
xlf90 x.f -qextname -qbindcextname # calls "foo_", and "bar_"
xlf90 x.f -qextname -qnobindcextname # calls "foo", and "bar_"
xlf90 x.f -qextname=foo -qbindcextname # calls "foo_", and "bar"
xlf90 x.f -qextname=foo -qnobindcextname # calls "foo", and "bar"
xlf90 x.f # calls "foo", and "bar"
xlf90 x.f -qnobindcextname # calls "foo", and "bar"