0

コンパイル時にエラーが発生しました:

b-spec/BS_Linux_Dynamic.cpp:57:11: エラー: '(' トークンの前にコンストラクタ、デストラクタ、または型変換が予想されます make[1]: * [Release/b-spec/BS_Linux_Dynamic.o] エラー 1 make[1] : ディレクトリ `/home/mm/Плот/metamod-1.19/src' を離れます make: * [all] エラー 2

ここにソースがあります: http://pastebin.com/rhpPrmHv

返信ありがとうございます。

4

2 に答える 2

3

問題はここにあります:

__declspec(naked) void CheckProtocol_AsmHelper_LDyn() {

__declspec(naked)は でサポートされていない Microsoft 拡張機能であるため、これはコンパイルされませんgcc

gcc/g++ の __declspec( Naked ) と同等のものを参照してください

于 2013-02-16T09:58:01.647 に答える
1

asm()の代わりに使用しないのはなぜ__asm{}ですか? Linux カーネルもこの方法でそれを行うので、ぜひ試してみてください。また、なぜカーネルモジュールを書くのに c++ を使っているのですか?

おー!そして使用します__attribute__((naked))

編集:

asm()各呼び出しをセミコロンで終了する必要があります。また、asm()引数として文字列を取るため、アセンブリ コードを引用符で囲む必要があります。また、これらの文字列でタブと改行を示すため\nに andを使用する必要があります。\t

于 2013-02-16T13:02:46.180 に答える