【发布时间】:2020-06-04 15:52:13
【问题描述】:
我有一个简单的文件 main.cpp 和静态库 MyLib.lib,我正在尝试将程序与静态库链接,如下所示:
g++ -o m main.cpp -static -L c:\lib\path -l MyLib
或者像这样:
g++ -o m main.cpp -L c:\lib\path -Wl,-Bstatic -l MyLib -Wl,-Bdynamic
编译过程成功退出,没有错误。但是,当我尝试从命令行运行 m.exe 时,我收到无法运行的错误,因为找不到 MyLib.dll。
我特别说它应该针对静态库 MyLib.lib 进行编译,那么它为什么要搜索动态库?我在上面的命令中有错误吗?
【问题讨论】:
-
有理由在 Windows 上使用 gcc 吗?
-
我没有 dll 文件。我只有一个 lib 文件。 这是您评论中的重要信息,应该添加到问题中。由于您链接 MyLib.lib 然后得到“找不到 MyLib.dll”,因此您链接到了不正确的 MyLib.lib,即与 MyLib.dll 链接的库
标签: c++ windows g++ static-linking lib