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下一篇: performance significantly reduced when inner join table and views