2

私はLinuxプログラミングにまったく慣れていません。私は以下を使用して単純なC++コードをコンパイルしていますg++

#include“recip.hpp”
#include<cassert>

double recip (int i) {
// I should be non-zero.
assert (i != 0);
return 1.0/i;
}

ファイルrecip.hppは現在のディレクトリにあります。エラーが発生する理由がわかりません。

recip.cpp:1:9: error: #include expects "FILENAME" or <FILENAME>

どうしたの?

4

3 に答える 3

11

コンパイラはテキストエディタでも人間でもありません-視覚的な類似性ではなく、文字コードの完全な一致をチェックします...使用する必要があります

#include "recip.hpp"

標準の二重引用符を使用します。

于 2012-09-09T04:49:31.320 に答える
3

UTF-8として扱われる最初の行は、次のようになります。

0x23 = U+0023
0x69 = U+0069
0x6E = U+006E
0x63 = U+0063
0x6C = U+006C
0x75 = U+0075
0x64 = U+0064
0x65 = U+0065
0xE2 0x80 0x9C = U+201C
0x72 = U+0072
0x65 = U+0065
0x63 = U+0063
0x69 = U+0069
0x70 = U+0070
0x2E = U+002E
0x68 = U+0068
0x70 = U+0070
0x70 = U+0070
0xE2 0x80 0x9D = U+201D
0x0A = U+000A

U+201CおよびU+201Dは、U + 0022(ASCII 34)またはに置き換える必要があります"

MS Wordやその他のワードプロセッサは、Cコードのエディタを悪くします。

于 2012-09-09T04:56:50.953 に答える
1

weiがexample.iをビルドするときにswigを開始します。

example_wrap.c:2948:10:エラー:#includeは「FILENAME」または

/* File: example.i */
%module example
%{
#define SWIG_FILE_WITH_INIT
#include 'example.h'
%}
int fact(int n);

コードを変更します:

/* File: example.i */
%module example

%{ 
#define SWIG_FILE_WITH_INIT
#include "example.h"
%}
int fact(int n); 

インクルード'二重引用符'に含まれています。

于 2016-02-18T02:15:13.127 に答える