即使指定了 -L 路径,GCC 仍继续显示 "/usr/bin/ld: cannot find"

标签 gcc static-libraries

我正在尝试使用Mac上的终端使用gcc和ssh在Ubuntu服务器上编译带有静态库和头文件的main.c。我上传了库文件并使用 -L 选项指定它,并使用 -I 选项指定头文件。

我尝试使用:

gcc main.c -L/Libraries/lib/libRNA.a -lRNA  -ILibraries/include/ViennaRNA

它出来了:

/usr/bin/ld: cannot find -lRNA

collect2: error: ld returned 1 exit status

最佳答案

-L 需要一个目录作为参数。您正在传递库的名称。

就这样做:

gcc main.c -L/Libraries/lib -lRNA -ILibraries/include/ViennaRNA

或者直接链接到.a文件的绝对路径:

gcc main.c /Libraries/lib/libRNA.a -ILibraries/include/ViennaRNA

关于即使指定了 -L 路径,GCC 仍继续显示 "/usr/bin/ld: cannot find",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41078178/

相关文章:

C++ 编译器在封装行为上存在分歧——哪一个做对了?

gcc - 在编译时确定 LLVM 与 GCC

c - C 程序中与 awk 语法冲突

linux - Systemtap 脚本到 C 代码的转换和编译

c++ - 防止 GCC 对结构 union 中的位域重新排序

ios - 构建静态框架和内部链接其他开源库的设计方法

c++ - 使用 CMake 创建库、安装它并链接到另一个项目的正确方法

c++ - 如何修复静态库?

c++ - 将其他库与静态库一起使用?

c - 使用 C/C++ 库进行 Swift 链接和构建