【问题标题】:Linking libraries with minGW使用 minGW 链接库
【发布时间】:2015-11-06 09:26:04
【问题描述】:

我正在使用:Windows 7; MinGW (GCC) 版本 4.8.1; c++

我有几个自己的构建库,它们链接到一个可执行文件。 一个要链接的库的简单示例: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

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

  • 这两种方式有什么区别让gcc知道什么 图书馆链接?
  • B) 是否有任何缺点或不可行?

【问题讨论】:

  • 我不确定这是否有帮助,但 Windows 终端不区分大小写,LlibFolder 与 libFolder 相同
  • 第二个不应该工作,我猜你在你的帖子中错误地在-libFolder中添加了破折号。

标签: c++ windows gcc linker


【解决方案1】:

这两个命令的区别在于,第一个命令添加了一个供链接器搜索的路径,并告诉链接器在搜索路径中搜索forms 库,而在第二个命令中,你告诉链接器无需搜索即可直接链接到特定库。

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

【讨论】:

  • 除此之外,第一个命令更加通用,因为它不关心所讨论的库是静态库 (lib*.a) 还是共享库,即 DLL (@987654323 @或直接lib*.dll)。
猜你喜欢
  • 2016-02-02
  • 1970-01-01
  • 2018-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多