私はOpenGLといくつかの他のネイティブライブラリ(Derelictライブラリを使用して)とのインタフェースを持つDでアプリケーションを書いています。しかし、このエラーはまったく関連していないようです。私は「ダブビルド」を行うたびリンカエラー:未定義の `内部 'への参照
コンパイルは成功しますが、ldは、このメッセージで失敗します。
Linking...
../git/mango-engine/bin/libmango-engine.a(gl_model_503_284.o):(.data._D12mango_engine8graphics6opengl8gl_model7GLModel6__initZ+0x10): undefined reference to `internal'
../git/mango-engine/bin/libmango-engine.a(shader_51b_52f.o): (.data._D12mango_engine8graphics6shader13ShaderProgram6__initZ+0x18): undefined reference to `internal'
collect2: error: ld returned 1 exit status
私はこれが何を意味するのか見当がつかない、と前にそれを見たことがありません。また、間違いなくこのエラーは、特定のファイルgl_model.dとshader.dを別のDUBプロジェクトからインポートした場合にのみ発生します。それらがインポートされない場合、リンカーは成功します。
私が提供するどのような情報がわからないので、私はちょうど全体のソースコードにhere.
EDITリンクします:x86_64版のためにコンパイルするときにこのエラーが発生するだけに。 x86は問題なく動作します。
SyncLockは、私が「同期」のブロックに使用する空のクラス(もしわからないprivate SyncLock lock = new SyncLock();
:私は2つのファイル(両方が同じである)の2つのラインにそれを追跡してきた
'extern(C)void internal()'または宣言されているが定義されていないような関数や変数があります。その 'mango_engine.graphics'モジュールは、あなたのコードですか、ライブラリですか? –
@ AdamD.Ruppe私はプロジェクト全体で1つのextern文しか持っていませんが、実装はあります。それはまた、 "内部"の近くのどこにでも指定されていません – jython234