c - 静态库不包含宏

标签 c visual-studio macros static-libraries lib

我在 Visual Studio 2015 下有一个静态库项目(用 C 语言编写)和另一个示例项目(用 C 语言编写)。我可以使用示例项目中库中的函数没有任何问题。我的问题是我在静态库项目的一个头文件中有一个宏,但我在示例项目中看不到(或使用)这个宏。我收到此错误:“函数 main 中引用的未解析外部符号 ADD1”。如何在示例项目中使用此宏?

注意:我在示例项目中使用了库文件,这要归功于这个 pragma this pragma: #pragma comment(lib, "mylib.lib")

最佳答案

I do not want to include any of the header files of the static library project. They are not supposed to be seen by other projects.

我觉得有些困惑。


要使用任何库,您必须了解它的函数、数据类型(例如:enumstructtypedef)、宏等等...这一切共同构成了图书馆的“API”。

大多数 库(不是全部)都会有一些内部 header 。你是对的,这些不应该被其他项目看到,并且将严格在内部使用。

所有 库都有一些定义其 API 的“公共(public)” header 。没有公共(public) API 的代码库要么毫无用处,要么实际上是一个独立的应用程序。

关于c - 静态库不包含宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43186632/

相关文章:

C 在动态二维字符数组中插入字符串或(char*),段错误

sql-server - SQL server 计划任务发送 Excel 文件的最佳方式?

visual-studio - 哪个版本的 Visual Studio Express for JScript .NET?

visual-studio - Visual Studio 正在创建 ref 文件夹

c++ - __has_cpp_attribute 不是 'function-like' 宏?

macros - Racket :宏扩展内部匹配模式

c - 在 Linux 中用 C 语言获取主音量

c - C 中的 Pthread_join 和 Pthread_exit

c - 我需要在c中为汇编语言命令编写宏

c - 来自字符串的 vector 导致段错误