2017-11-12 3 views
-1

ファイルをインポートすることによってどのように関数のライブラリを設定すればよいでしょうか。静的変数であるクラスを作ることができますが、クラスなしでそれを行う方法があるはずです。私が試したことはこれです:クラスのない関数のライブラリ

lib.h:

lib.cpp:

1 #include <cstdio> 
    2 #include "lib.h" 
    3 
    4 using namespace std; 
    5 using namespace el; 
    6 
    7 int add(int a, int b) { 
    8   return a + b; 
    9 } 

main.cppに:

1 #include <cstdio> 
    2 #include "lib.h" 
    3 
    4 using namespace std; 
    5 using namespace el; 
    6 
    7 int main() { 
    8   printf("%d\n", add(1, 2)); 
    9 
10   return 0; 
11 } 

私はわからないものをこの実装では間違っていますが、私が得るのはUndefined symbols for architecture add関数のエラーです。あなたが必要とする名前空間に関数定義を置くこと

+0

は、どのようにそれをコンパイルし、リンクしたのですか?そして、コンパイルが不可能な行番号を投稿しないでください。 –

+0

私は2つの方法を試みました。かつてはg ++を使っていて、それぞれのファイルをCMakeとリンクさせていました。両方の同じ結果。 – DSchana

答えて

1

namespace e1 { 
    int add(int a, int b) { 
     return a + b; 
    } 
} 
+0

本当ですか?このようなクラスの定義を行う必要はありません。 – DSchana

+0

@DSchanaはい、そうです。 –

+0

私の試行はプロトタイプの機能に似ていないのはなぜですか? – DSchana

関連する問題