0
関数 'doSomething'のコード構造の次のタイプのMSVCデバッグビルド中にのみエラーLNK2019が発生します。コードは最適化されたビルドのために正常にコンパイルされます。誰か助けてもらえますか?エラーLNK2019:未解決の外部シンボル - 関数テンプレートのmsvcデバッグビルド
//ヘッダファイル -
class __declspec(dllimport) Test /* some functions of class Test are defined in DLL - abc */ {
// members
public:
template <typename T>
_forceinline int doSomething(T var)
{
//do some thing
return var.size();
}
}
// CPPファイルabc.h
/*part of another DLL which does not link to DLL 'abc' */
#include "abc.h"
int main() {
Test t;
Test1 var1;
t.doSomething(var1);
}
この場合、forceinlineヘルプを削除しますか?関数doSomething()は2つのDLLで定義されますが、それらが相互にリンクしていない場合は、それを行うのがいいでしょうか? –
これは事実かもしれませんが、私の経験上、 '__forceinline' *はデバッグビルドに適用されます。それは単純なリクエストではありますが、コンパイラが無視することはめったにありません。私が '__forceinline'とマークした関数をインラインでは見たことがないのは、正当に*インライン化できないときだけです。インライン展開が実際に行うのは実際には愚かなことですが、コードのページやページである関数をインライン展開します。 –