2015-11-06 98 views
1

我正在使用:Windows 7; MinGW(GCC)4.8.1版; C++使用minGW链接库

我有几个自己的构建库链接到一个可执行文件。 一个简单的例子与一个库链接:libFolder \ libforms.a

A)g++ -o main\theApp.exe main\main.o -LlibFolder\ -lforms

B)g++ -o main\theApp.exe main\main.o libFolder\libforms.a

两者产生相同的可执行文件。

  • 这两种方式让海湾合作委员会知道什么 图书馆链接有什么区别?
  • B)有没有什么缺点?
+0

我不知道这是否有帮助,但Windows终端不区分大小写,LlibFOlder与libFolder相同 – KostasRim

+0

第二个不应该工作,我猜你在'-libFolder'中误添加了短划线帖子。 –

回答

2

两个命令的区别是,在第一次添加的路径链接器搜索,你告诉链接到搜索在搜索路径forms库,并在第二个命令你告诉链接器直接链接到特定的库,而无需搜索它。

这两个命令同样适用,并且会产生相同的结果。你选择哪一个完全取决于你。第二种变体唯一的缺点是,如果您必须链接多个库,那么您必须多次提供相同的路径,而不必对第一个变体进行操作。

+2

为了补充说明,第一个命令更加通用,因为它不关心所讨论的库是静态库('lib * .a')还是共享库,也就是DLL('lib * .dll)。 a'或直接'lib * .dll')。 – rubenvb