未定义的__dso_handle_引用 - 在cygwin上编译C ++

时间:2014-10-27 14:48:32

标签: c++ linker g++

我有一个基本的Hello World C ++程序,我正在尝试使用cygwing++上编译和运行。代码是:

#include <iostream>
using namespace std;

int main() {

  cout << "Hello world." << endl;
  return 0;
}

使用:g++ helloWorld.cpp -o h进行编译会导致以下错误:
/tmp/ccDO1S4J.o:helloWorld.cpp:(.rdata$.refptr.__dso_handle[.refptr.__dso_handle]+0x0): undefined reference to __ dso_handle&#39; collect2:错误:ld返回1退出状态`

我一直在阅读一些其他线程,这些线程表明它可能是一个链接器问题,并且单独调用链接器或使用详细输出可能会导致更多线索。

所以,我做了:
1. g ++ -c helloWorld.cpp -o helloWorld.o(这很有效 - 没有错误) 2. ld -o h helloWorld.o导致对__main或std :: cout等错误的大量未定义引用。

我认为这是一个链接问题,我需要链接另一个库。关于如何解决这个问题的任何指示都是最受欢迎的。

1 个答案:

答案 0 :(得分:0)

通过g++工作的安装程序应用程序重新安装cygwin