C++用include包含文件的时候,为什么单独包含一个cpp文件可以成功运行,而再包含一个cpp文件就出错呢?

两个文件里各有一个简单的函数,把b.cpps删除调,调用它的那条语句注释掉,程序是可以运行的,且调用a文件函数的结果正确;但是保持两个文件用include命令就出错了:m... 两个文件里各有一个简单的函数,把b.cpps删除调,调用它的那条语句注释掉,程序是可以运行的,且调用a文件函数的结果正确;但是保持两个文件用include命令就出错了:multiple definition of sub(double, double)first defined hereerror. ld returned 1 exit status 展开
 我来答
laneast
2020-06-02 · TA获得超过471个赞
知道小有建树答主
回答量:258
采纳率:100%
帮助的人:197万
展开全部
因为你在 main.c 中 #include 了 a.cpp 和 b.cpp,这样相当于在 main.c 里面实现了一次 add() 和 sub() 函数,然后在 a.cpp 和 b.cpp 里面又同样存在这样的函数,于是就出现了函数定义了两次的问题。
我怀疑你设置 codeblocks 不编译 a.cpp 了,所以 add() 函数没有报出这个错误。
你可以在左边文件列表里面的 b.cpp 上点右键,在弹出菜单里面选择 properties,如果是中文的话,可能是属性之类的,然后在弹出的窗口中选择 build, 然后把它设置为不属于 Debug 也不属于 Release,这样它就不会被编译,也就不会出现这样的错误了。
但是!通常我们不 #include 一个 .cpp 文件的,就是因为会出现这样的问题,即使你用了上述的方式避免了问题,但是仍然有可以在两个 cpp 文件中都引入同一个 .cpp 文件,然后再次出现这样的问题。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式