库中的"lib"前缀

Max*_*xpm 12 c c++ gcc naming-conventions

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

注意:库必须以三个字母开头lib并具有后缀.a.

这是一个操作系统约定,还是gcc/ arquirk?Xcode似乎能够创建没有前缀的库.它有什么不同的做法?

Car*_*rum 19

您可以根据需要为库命名,但如果您希望gcc的-l标志找到正确的库,则需要按链接描述的方式命名.例如:

gcc -o myapp myapp.c -lm
Run Code Online (Sandbox Code Playgroud)

将编译myapp.c,链接生成的对象libm.a,并输出一个名为的可执行文件myapp.目前,可能存在涉及动态库名称等的更复杂的搜索路径,但是您应该从该示例中获得基本思想.

gcc手册页:

-l 图书馆 ......

... 用和围绕并搜索多个目录.lib.a

  • @Max - 是的,它是可选的.你可以在那里放一个空间.但是当你链接到`libiberty.a`时,编写`-liberty`会很有趣...... (9认同)
  • 那些老 unix 家伙*真的*讨厌使用键盘!这是 unix 风格的链接器的一个特性,我从来没有真正看到它被延续到现在的理由。当然,您始终可以提供库的完整路径和名称。 (3认同)
  • @Carl:特别是,如果你这样做*不能*自由地命名你想要的库.:) (2认同)