【问题标题】:Cannot specify additional link file for clang无法为 clang 指定其他链接文件
【发布时间】:2019-12-20 07:11:42
【问题描述】:

我已经使用 clang 成功编译了我的 main.cpp,通过命令行选项指定了额外的包含路径,如下所示:clang++ -I ./Dependencies/GLFW/include/ -S .\main.cpp

但是,当我尝试通过以下命令指定附加链接库来链接它时:clang++ -L ./Dependencies/GLFW/lib/glfw3.lib .\main.s 它给了我一个链接器错误main-8b7c4e.o : error LNK2019: unresolved external symbol glfwInit referenced in function main

对可能出现的问题有什么建议吗?我确定指定的相对路径是正确的,因为编译命令没有给我任何问题。

main.cpp

#include <iostream>
#include <GLFW/glfw3.h>

int main() {
  glfwInit();
  std::cout << "Hello world" << std::endl;

  return 0;
}

【问题讨论】:

    标签: c++ linker clang linker-errors clang++


    【解决方案1】:

    -L 用于指定要在其中搜索库的文件夹。编译器会忽略不存在的目录。

    你的命令行应该是:

    clang++ ./Dependencies/GLFW/lib/glfw3.lib .\main.s
    

    【讨论】:

    • 不行还是不行。仍然给我同样的错误。
    • 编译器输出中有任何警告吗?例如可能会有关于库格式不正确的警告(.lib 可能是一个 Visual Studio 库,您可能需要一个用于 clang/gcc 的 .a 库)
    • 我将 .lib 文件替换为 .a 文件(从 glfw 官方页面下载)。似乎仍然不起作用。另外,现在它给了我一个警告-`警告LNK4272:库机器类型'x86'与目标机器类型'x64'冲突`
    • 没关系,我想我会用 Visual Studio 耸耸肩
    • 你下载了一个 32 位的库,你需要一个 64 位的
    【解决方案2】:

    请在下面的链接中找到有关 glfw 标头包含的更多详细信息。

    https://www.glfw.org/docs/latest/build_guide.html

    【讨论】:

    • 请不要只发布链接的答案,链接断开然后你的答案毫无意义
    猜你喜欢
    • 2011-08-10
    • 2011-07-07
    • 1970-01-01
    • 2012-04-25
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多