- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如果我有头文件List.h
包含与列表相关的函数的原型(prototype),函数的定义在源文件(c 文件)中 List.c
.两者 List.c
文件和 main.c
文件(或代表主程序的任何源文件)包括 List.h
文件。现在主程序有列表函数的原型(prototype),但是函数的定义是如何包含在主程序中而没有包含 List.c
的?归档到main.c
文件?这与List.h
无关和 List.c
文件具有相同的名称。
我正在使用 Windows 并使用 MS Visual Studio。
最佳答案
对于您的场景,您将 List.c
编译为 List.o
(或者可能是 List.obj
,如果您在 Windows 上工作),然后将 main.c
编译为 main.o
。然后再次运行编译器将两个目标文件连同任何其他必要的库链接在一起。
如果您使用 GCC(GNU 编译器集合中的 GNU C 编译器),那么您可以使用:
gcc -Wall -Werror -std=c11 -c List.c
gcc -Wall -Werror -std=c11 -c main.c
gcc -Wall -Werror -std=c11 -o program main.o list.o
如果您需要指定库,您可以将它们添加到目标文件之后。
您也可能使用 makefile
将所有这些自动化。
关于c - 在多文件程序和包含中,函数定义如何包含到主程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51698136/
我有一个主程序X,它从我的网络摄像头获取数据。 我想在执行时实时配置 X。 我知道这样做的常见方法之一是使用IPC,如命名管道/Unix套接字/互联网套接字等。但我想避免每个调用者必须单独打开套接字/
信号可以在任何线程或主程序本身中接收。我从主程序创建了一个辅助线程。所以我的程序中有两个线程 1. 主线程(进程本身) 2. 辅助线程。我只希望每当信号到达我的辅助线程时,它应该向我的主线程(程序)发
我在 java 中有一个主类,它调用 JFrame Two。 但在调用 JFrame Two 之前,我的主要检查一个条件,如果为真,则调用 JFrame One。 所以,我的 main 不扩展 JFr
我正在尝试编译一个 C++ 程序,但它不起作用。首先,我应该说 c++ 不是我真正了解的语言,我使用 Fortran。无论如何,主要的 c++ 程序调用一个 fortran 子例程。我可以编译这个子例
我正在尝试将 Rust 绑定(bind)到 nbdkit,但运气不佳。我需要制作一个 .so 文件,这很简单。 .so 文件必须有一个名为 plugin_init 的公共(public)函数,这也很简
QT 似乎是最好的跨平台 GUI 工具包。不幸的是,它是在 C++ 中,它与许多有趣的语言(例如 *nix 上的 D、Rust、Julia 和 Mono)的绑定(bind)要么不可用,要么没有维护。
我有一个 Maven 项目,它在 src 文件夹中的一个包中有 2 个主程序(MyTestApp_A 和 MyTestApp_B)。 如果我打开它们并单击运行按钮,我可以在 Eclipse 中运行这些
我是一名优秀的程序员,十分优秀!