积极答复者
C++多源文件连接

问题
答案
-
这个很简单啊,按照你的说法,假设头文件为 a.h, "头文件的实现程序"文件a.cpp "主程序"文件 main.cpp
1) 在a.cpp 中用#include 包含"a.h"
2) 在main.cpp 中用#include 包含"a.h"
Visual Studio 的IDE 会自动的做好后面的事儿,只编译出一个exe 或者DLL 出来。使用Visual Studio 的一大好处就是不用写makefile,也不用关心link的细节。
如果是你自己编译,链接,对于只有三个源代码文件的程序,也比较简单,推荐一篇博客给你:http://blog.csdn.net/wangningyu/archive/2009/11/18/4830920.aspx
如果是很多源代码文件,就不提倡手工做了。Linux/UNIX 下一般是写makefile。- 已标记为答案 VongerModerator 2010年2月12日 10:43
-
如果你在带有main函数的文件中include了其他头文件。你需要让你的工程可以在连接过程中找到所使用函数或类的实现。比如把对应的cpp文件加到工程中,或者添加lib库等等。从而使链接器可以找到正确的名字符号。
麻烦把正确答案设为解答。- 已标记为答案 VongerModerator 2010年2月12日 10:44
-
全部回复
-
这个很简单啊,按照你的说法,假设头文件为 a.h, "头文件的实现程序"文件a.cpp "主程序"文件 main.cpp
1) 在a.cpp 中用#include 包含"a.h"
2) 在main.cpp 中用#include 包含"a.h"
Visual Studio 的IDE 会自动的做好后面的事儿,只编译出一个exe 或者DLL 出来。使用Visual Studio 的一大好处就是不用写makefile,也不用关心link的细节。
如果是你自己编译,链接,对于只有三个源代码文件的程序,也比较简单,推荐一篇博客给你:http://blog.csdn.net/wangningyu/archive/2009/11/18/4830920.aspx
如果是很多源代码文件,就不提倡手工做了。Linux/UNIX 下一般是写makefile。- 已标记为答案 VongerModerator 2010年2月12日 10:43
-
不对啊,它有这样的错误啊:
错误 1 error LNK2019: 无法解析的外部符号 "public: bool __thiscall myStack::pop(int &)" (?pop@myStack@@QAE_NAAH@Z),该符号在函数 _main 中被引用 mymain.obj 13
错误 2 error LNK2019: 无法解析的外部符号 "public: bool __thiscall myStack::push(int)" (?push@myStack@@QAE_NH@Z),该符号在函数 _main 中被引用 mymain.obj 13
错误 3 fatal error LNK1120: 2 个无法解析的外部命令 E:\ctest\13\Debug\13.exe 13
而把主程序放到头文件实现程序中,编译通过,运行正常 -
如果你在带有main函数的文件中include了其他头文件。你需要让你的工程可以在连接过程中找到所使用函数或类的实现。比如把对应的cpp文件加到工程中,或者添加lib库等等。从而使链接器可以找到正确的名字符号。
麻烦把正确答案设为解答。- 已标记为答案 VongerModerator 2010年2月12日 10:44
-