c ++编译问题

我试图编译一个c ++程序,这是我很久没有做的事情了......

我正在尝试的是:

g++ -c A.cpp  -o A.o

g++ -c dir/B.h -o B.o

这似乎工作,然后我尝试:

g++ A.o B.o -o A -lX11 -lpthread

并得到:

Bo:文件无法识别:文件格式无法识别

collect2:ld返回1退出状态

问题是什么?

非常感谢 :)


当你编译bh时省略-o参数,你很可能会看到g ++创建了一个名为bhgch而不是bo的文件。该文件是一个“预编译头文件”。 通过在bo中进行重命名,您可以说是随后调用g ++关于文件的内容。 如果bh是一个头文件,那么你应该把它包含在a.cpp中。 如果bh包含函数定义,则应该将其重命名为b.cpp。


g++ -c dir/B.h -o B.o

你为什么编译头文件?

我假设A.cpp包含dir / Bh - 所以你不需要单独的编译器调用来编译头文件。


你正在编译一个头文件。 这样做不好。 :-)

链接地址: http://www.djcxy.com/p/15137.html

上一篇: c++ compiling problem

下一篇: performance significantly reduced when inner join table and views