c/c++语言开发共享iostream链接器错误

我有一些旧的C代码,我想与一些C ++代码结合起来。

以前的C代码包含以下内容:

#include  #include  #include  #include "mysql.h" 

现在我试图让它像这样使用带有iostream的C ++:

 #include  #include  #include  #include  #include "mysql.h" 

但是在编译时我不断收到以下链接器错误:

[链接器错误]对`std :: string :: size()const’的未定义引用

[链接器错误]对`std :: string :: operator [](unsigned int)const’的未定义引用

[链接器错误]对`std :: string :: operator [](unsigned int)const’的未定义引用

[链接器错误]对`std :: string :: operator [](unsigned int)const’的未定义引用

[链接器错误]对`std :: ios_base :: Init :: Init()’的未定义引用

[链接器错误]对`std :: ios_base :: Init :: ~Init()’的未定义引用

ld返回1退出状态

我该如何解决这个问题?

编辑:我的编译器是Dev-C ++ 4.9.9.2

    C string.h标头和C ++ string标头不可互换。

    但总的来说,你的问题是文件正在被正确编译,但错误的运行时库正在被链接。

    Dev-C ++使用GCC。 GCC可以根据文件扩展名正确地确定文件中的语言,但不会链接正确的运行时库,除非您特别要求它(命令行中的-lstdc ++)。 将GCC称为“g ++”(或者,在您的情况下,称为“mingwin32-g ++”)也将获得正确的语言,并将链接所需的库。

    您需要链接到C ++运行时。 这取决于您的平台和编译器,但在链接中添加-lC可能会这样做。

    因此可能使用您的C ++编译器而不是ld进行链接。

    在任何情况下,如果您希望C ++代码正常工作,您可能必须使用C ++编译器而不是ld进行链接 – exception和静态初始化程序通常需要正常工作…

    当我尝试使用Cygwin(g ++)进行编译时,我得到了同样的错误。

    只需在编译规则中添加-L/usr/local/bin -L/usr/lib ,它就可以了。

    这可能是Cygwin特有的,但它也可能有助于解决您的问题。

    需要了解更多c/c++开发分享iostream链接器错误,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!

      以上就是c/c++开发分享iostream链接器错误相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/978975.html

      (0)
      上一篇 2021年12月12日
      下一篇 2021年12月12日

      精彩推荐