是他们编译一个项目的一种方式,这样你的所有函数类都可以.进入一个可以链接的文件
Is their a way to compile a project so that all your functions classes ect. go into one file that you can link?
所以我想知道我的项目中是否有一堆有用的函数,它们是否可以为这些函数创建某种库。例如,我喜欢ShaderLoader.h、ShaderLoader.cpp、MyMath.h、MyMath.cpp等。是他们编译这些文件的某种方式,这样我就可以简单地链接一个文件,而不是将所有这些文件添加到每个新项目中。也许是.dll?顺便说一句,我的项目是用c++编写的。
如果我这样做,主函数会发生什么?变量会以同样的方式工作吗?
非常感谢!
如果有许多.cpp
文件中没有main
函数,而一个cpp
文件中有main
,使用其他.cpp
文件的function
,则一种可能的方法是在编译时将其他文件的object
文件与main
文件链接。
示例-假设您有2个.cpp
文件,
第一个是add.cpp
:
#include <iostream>
#include <stdlib.h>
#include <math.h>
void add()
{
int a,b;
std::cout<<"nEnter two numbers";
std::cin>>a>>b;
std::cout<<"Sum is : "<<a+b;
}
编译它,你会得到一个错误undefined reference to WinMain
,你会在你的项目文件夹中得到add.o
文件。
第二个是mul.cpp
:
#include <iostream>
#include <stdlib.h>
#include <math.h>
void mul()
{
int a,b;
std::cout<<"nEnter two numbers";
std::cin>>a>>b;
std::cout<<"Mul is : "<<a*b;
}
再次编译它,你会得到一个错误undefined reference to WinMain
,你会在你的项目文件夹中得到mul.o
文件。现在,如果您想在新项目/代码中使用这两个函数,那么您只需要将add.o
和mul.o
链接到您的项目,而不需要将add.cpp
和mul.cpp
添加到项目中。
#include <iostream>
#include <stdlib.h>
#include <math.h>
void add();
void mul();
int main()
{
int a;
std::cout<<"Press n1 - Additionn2 - Multiplicationn";
std::cin>>a;
if(a==1)
{add();}
else if(a==2)
{mul();}
else
{std::cout<<"Wrong choice";}
return 0;
}
这只是一个例子,通过这种方式,你可以链接你的文件,而不是添加。
是的,最好的方法是创建一个库(.dll或.a(,您的main将同样工作,在应该使用该库的项目中添加-Ipath to headers
和-Lpath_to_thelibrary -llibraryname
,如果库名称是libCustomLib,则应该编写-lCustomLib
- C++映射有2个键,这样任何1个键都可以用来获取值
- 一个Q_PROPERTY可以泛化为多个基类吗?
- 任何人都可以告诉我我的 C++ 代码出了什么问题?
- 任何人都可以弄清楚这段代码如何显示运行错误?它打印无限时间 -1 以及正确答案
- 任何人都可以解释一下我是否需要 & 在第一个代码片段中
- 多 GPU 批处理 1D FFT:似乎只有一个 GPU 可以工作
- 任何人都可以查明我的递归函数中的错误吗?
- MSVC 错误:4 个重载中的任何一个都无法转换所有参数类型
- 是否有一个库可以检查C++中的变量类型?
- 对于C++中的每一个都无法更新向量
- 是否有一个C++函数可以准确返回平方根反比的内置 CPU 操作 RSQRTSS 的值?
- C++中是否有一个函数可以为您获取指向该节点的所有指针的地址空间
- Qt C++创建一个所有类都可以访问的全局变量
- 如何制作一个结构程序,在其中可以存储无限量的数据,以便每次您想要时都可以将另一个产品添加到列表中?
- 有人可以帮助我做一个时循环,以便在每次计算后我都可以继续使用CIN值
- 我所有应用程序类都可以访问一个对象
- 我想使用C++映射,以存储一个矩形id的4个坐标,任何人都可以举一个例子吗
- C++中是否有一个std::string的内置函数,当两个字符串都可以是大写或小写时,可以按字母顺序比较两个字符串
- 维基密码?一个任何人都可以查看和编辑代码的地方
- 是他们编译一个项目的一种方式,这样你的所有函数类都可以.进入一个可以链接的文件