Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 用minGW链接图书馆_C++_Windows_Gcc_Linker - Fatal编程技术网

C++ 用minGW链接图书馆

C++ 用minGW链接图书馆,c++,windows,gcc,linker,C++,Windows,Gcc,Linker,我正在使用:Windows7;MinGW(GCC)版本4.8.1;C++ < /P> 我有几个自己的构建库,它们链接到一个可执行文件。 一个包含一个库链接的简单示例: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知道什么的方法有什

我正在使用:Windows7;MinGW(GCC)版本4.8.1;C++ < /P> 我有几个自己的构建库,它们链接到一个可执行文件。 一个包含一个库链接的简单示例: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
中添加了破折号。要添加破折号,第一个命令更通用,因为它不关心所讨论的库是静态库(
lib*.a
)还是共享库,即DLL(
lib*.DLL.a
或直接
lib*.DLL
)。