p*****c 发帖数: 20 | 1 我在头文件里声明了函数
bool cal_sum(int num,int &elem)
然后我另外写了一个文件是这个函数的主体 cal.cpp
在主函数文件里我include head.h 后,为什么还是link不到cal这个文件?
如果我在主函数里直接用 include cal.cpp,甚至都不需要头文件了。
请问如果用头文件的方式应该怎样调用那个外部函数 ? 直接include cal.cpp是合理
的做法吗? |
p*****c 发帖数: 20 | 2 我用的是DevC++.同时打开主函数main.cpp和函数文件cal_sum.cpp,编译主函数的时候
出现undefined reference 错误。 |
m********a 发帖数: 1312 | 3 我猜你的link command有问题,没有包括cal.o |
p*****c 发帖数: 20 | |
m********a 发帖数: 1312 | 5 DevC++界面我不熟,至少因该有个log窗口可以看到compile和link command。
感觉你的link command只有main.o,漏掉了cal.o。
许多时候如果你依赖IDE自动编译,好像至少要搞个project之类的东西,这样才能保证
compile, link所有源文件。 |
p*****c 发帖数: 20 | 6 我试了一下VC++6,在里面建了一个project,然后加入所有的文件,运行正常。不过
没试过在devC++下面建立project。 |
k**f 发帖数: 372 | 7
You need to create a project in DevC++ and add both cpp files to the project.
Including the .h file makes the compiler happy, i.e., it can generate code
to call the function per the function prototype in the header file.
But if the function is implemented in another .cpp and not included in main.
cpp, the linker need to see the object code to put the executable.
That's why a non trivial program in C almost always needs a project file in
IDEs like VC++ and DevC++, or a makefile with the traditio
【在 p*****c 的大作中提到】 : 我试了一下VC++6,在里面建了一个project,然后加入所有的文件,运行正常。不过 : 没试过在devC++下面建立project。
|