- 【初心者歓迎】C/C++室 Ver.90【環境依存OK】
446 :デフォルトの名無しさん[]:2014/04/26(土) 07:47:28.76 ID:fKMdaZRq - // main.c
int main() { Test test; test.func(); } // test.h class Test { void func(); }; // test.cpp void Test::func() { Test2 tes2; test2.func2(); } // test2.h class Test2 { void func2(); }; // test2.cpp void Test2::func2(){ printf("hello\n"); }
|
- 【初心者歓迎】C/C++室 Ver.90【環境依存OK】
447 :デフォルトの名無しさん[]:2014/04/26(土) 07:50:59.21 ID:fKMdaZRq - というソースコードがあったときに以下のようなmakefileを書きました.
// makefile main.o : main.cpp g++ -c main.cpp test.o : test.cpp g++ -c test.cpp test2.o : test2.cpp g++ -c test2.cpp libtest2.a : test2.o ar crsv libtest2.a test2.o libtest.a : test.o libtest2.a ar crsv libtest.a test.o libtest2.a program : main.o libtest.a g++ -o main main.o libtest.a
|
- 【初心者歓迎】C/C++室 Ver.90【環境依存OK】
449 :デフォルトの名無しさん[]:2014/04/26(土) 07:56:41.06 ID:fKMdaZRq - ここで,make programすると,Test2::func2がundefined referenceとなってしまいます.
この理由を教えて頂けないでしょうか? 自分では,ar crsv libtest.a test.o libtest2.aでは,Test::funcとTest2::func2が 紐づかないのかなと考えているのですが,,, 尚,makefileの最終行をg++ -o main main.o libtest.a libtest2.aとすれば 成功することはわかっています.
|