关于C库的新手问题

时间:2011-02-03 00:28:46

标签: c header

在Windows XP上启动C并进行开发...我包含的库(如果是个人库)必须位于某个目录中吗?或者将计算机的内容编入索引以找到它们?

由于

4 个答案:

答案 0 :(得分:5)

它们可以位于任何目录中,也不会被编入索引。您可以将“包含目录”列表传递给编译器,编译器将搜索这些目录中的标头。同样,您可以将“库目录”列表传递给链接器,其中将搜索.lib文件。如何将这些参数传递给编译器或链接器的细节取决于您使用的编译器或IDE。

答案 1 :(得分:3)

简短的回答是,您可以将库(即我假设的DLL文件)放在与可执行文件相同的目录中,然后找到它们。

答案确实长得多,但现在只要知道上述情况就可以逃脱!

答案 2 :(得分:0)

它们可以位于您想要的任何目录中,链接器只需要知道创建可执行文件的位置。如果您正在使用命令行编译器(如gcc),则使用“-L {directory}”和“-l {library file name}”之类的选项来指定在编译中要包含的库的位置。这可能因每个编译器而异,因此您必须查看每个编译器的联机帮助页/帮助(但这很常见)。

答案 3 :(得分:0)

C编译器工具链通常几乎不会发现第三方(或个人)库。

根据您的工具链,您需要执行一些配置,以便编译器能够找到库的标头,以及链接器找到库的一些配置。

如果通过静态链接库来构建程序,通常不需要做任何特殊的事情来在运行时找到库(因为它们是可执行文件的一部分)。如果库是动态链接的,那么您需要确保库在运行时位于适当的位置(这可能就像确保它位于同一目录中一样简单。)

不幸的是,每个编译器都有自己的执行此配置的方式(根据您是否要使用IDE也可能有所不同),因此详细信息取决于您有兴趣使用哪种特定编译器。