c++ - "lib"库前缀

标签 c++ c gcc naming-conventions

来自 http://www.adp-gmbh.ch/cpp/gcc/create_lib.html :

Note: the library must start with the three letters lib and have the suffix .a.

这是操作系统约定,还是 gcc/ar 怪癖? Xcode 似乎能够创建没有前缀的库。它有什么不同之处?

最佳答案

您可以随意命名一个库,但是如果您希望 gcc 的 -l 标志找到正确的库,您需要按照链接描述的方式命名它。例如:

gcc -o myapp myapp.c -lm

将编译 myapp.c,将生成的对象与 libm.a 链接,并输出名为 myapp 的可执行文件。现在,可能有涉及动态库名称等的更复杂的搜索路径,但您应该从这个示例中了解基本概念。

来自gcc man page :

-l library ...

... surrounds library with lib and .a and searches several directories.

关于c++ - "lib"库前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6231206/

相关文章:

c++ -/fp :strict and/fp:precise? 之间的差异

c++ - 让 ostream 打开

c++ - 用 g++ 编译的奇怪代码

c++ - 如何警告 C 中 void 指针参数的类型不兼容?

c - 使用 syslog (linux) 在日志文件中写入错误类型

objective-c - clang 编译器从相同的来源生成不同的目标文件

c++ - 检查文本文件是否按字母顺序排列

c++ - 您可以在字符串文字中放置中断吗?

c - C中pthread_join()的返回顺序

c - 如何检查标准输出是否已在 Windows 上重定向到 NUL(在 Linux 上也称为/dev/null)?