自作したクラスのヘッダファイルをincludeして使おうとすると
Undefined symbols for architecture x86_64:
"message_printer::message_printer()", referenced from:
_main in test-f7836b.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
というエラーが出てしまいコンパイルができません。
入門サイト等に書いてある通りやったつもりなのですが、
どこが間違っているのでしょうか。
Mac OSXでg++を使ってコンパイルしています。
g++ -vの結果はこんな感じです。
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin13.4.0
Thread model: posi
使用したソースコードは下記の通りです。
宜しくお願い致します。
message_printer.h
lang
1#ifndef MESSAGE_PRINTER_H__ 2#define MESSAGE_PRINTER_H__ 3 4class message_printer{ 5private: 6 int x, y; 7public: 8 message_printer(); 9}; 10 11#endif
message_printer.cpp
lang
1#include "message_printer.h" 2#include <iostream> 3 4using namespace std; 5 6message_printer::message_printer(): x(0), y(0) { 7 cout << "construct" << endl; 8}
test.cpp
lang
1#include <iostream> 2#include "message_printer.h" 3using namespace std; 4 5int main(){ 6 message_printer m; 7 return 0; 8}
回答3件
あなたの回答
tips
プレビュー