gpt4 book ai didi

c++ - 如何创建一个像标准库头一样的头文件,这样就可以在不链接头文件中函数的所有目标文件的情况下编译程序?

转载 作者:搜寻专家 更新时间:2023-10-31 00:27:07 26 4
gpt4 key购买 nike

我正在尝试创建一个可以包含在内的头文件#include "sort.h "
并且包含header的程序可以正常编译
g++ main.cpp
无需将 header 中函数的每个目标文件与主文件链接起来。

g++ -c main.cpp insertion_sort.cpp merge_sort.cpp


g++ main.o merge_sort.o insertion_sort.o

所以我必须为 header 中的每个函数链接每个目标文件。还是他们的另一种方式?
头文件:

//sort.h file
#ifndef sort_h
#define sort_h

void insertion_sort(int *a,int n);
void merge_sort(int *a,int n);

//I want to include more functions

#endif

如何像使用 cmath 或 stdlib.h 等普通 header 一样使用我的 header ?

最佳答案

您的印象似乎是您从标准库头文件中获得的东西没有相应的目标文件/需要链接的库文件。这是错误的。

标准库链接到您的应用程序,只是编译器会自动为您完成。您不必手动告诉它这样做。

您的应用程序还需要可用的标准库才能运行。这就是为什么您必须在要运行使用 Visual Studio 构建的程序的计算机上安装 Microsoft 可再发行组件。其他编译器有类似的要求,您需要将它们的运行时库与您的应用程序一起分发。

简而言之;标准库与其他库没有什么不同,除了编译器在幕后为您链接它之外。

关于c++ - 如何创建一个像标准库头一样的头文件,这样就可以在不链接头文件中函数的所有目标文件的情况下编译程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50267236/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com