[英]Object files with visual studio
我有一个主文件main.cpp
,其中包括myclass.h
。 我也有myclass.o
和myclass.cpp
。 Visual Studio项目仅使用文件main.cpp
和myclass.h.
这样编译:
#include "myclass.h"
int main()
{
return 0;
}
这不是:
#include "myclass.h"
int main()
{
myclass M{};
return 0;
}
这会给出链接错误-可能是因为myclass.cpp
或myclass.o
未包含在项目中。
我宁愿只包含myclass.o
因为编译此类非常麻烦。 如果您对我正在使用的库感到好奇,请参阅https://forum.qt.io/topic/8492/solved-cannot-get-quazip-test-to-work/3 。
我的问题是:我可以仅使用标题和目标文件来编译和使用该类,即完全不使用.cpp文件吗?
谢谢!
Visual Studio生成.obj文件作为其中间格式。 gcc和gcc是产生.o文件的文件。 您可以将其包含在项目中,或者由于库很少有单个编译单元,因此可以构建一个.lib文件并将其包含在内。 但是请注意,必须在项目中使用与运行时库等完全相同的编译器开关来编译已编译的单元。 从源代码编译文件通常更简单。
我们也可以讨论使用DLL,但这似乎超出了您的问题范围,并且还引入了调用约定的复杂性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.