Gcc 海合会继续展示"/usr/bin/ld:找不到“;即使指定了-L路径

Gcc 海合会继续展示"/usr/bin/ld:找不到“;即使指定了-L路径,gcc,static-libraries,Gcc,Static Libraries,我正试图在Ubuntu服务器上使用gcc和ssh在Mac上使用Terminal编译带有静态库和头文件的main.c。我上载了库文件,并使用-L选项指定它,并使用-I选项指定头文件 我尝试使用: gcc main.c -L/Libraries/lib/libRNA.a -lRNA -ILibraries/include/ViennaRNA 结果是: /usr/bin/ld:找不到-lRNA collect2:错误:ld返回了1个退出状态 -L需要一个目录作为参数。你正在传递图书馆的名称 只要做

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

我尝试使用:

gcc main.c -L/Libraries/lib/libRNA.a -lRNA  -ILibraries/include/ViennaRNA
结果是:

/usr/bin/ld:找不到-lRNA

collect2:错误:ld返回了1个退出状态


-L
需要一个目录作为参数。你正在传递图书馆的名称

只要做:

gcc main.c -L/Libraries/lib -lRNA -ILibraries/include/ViennaRNA
或者直接链接到
文件的绝对路径:

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

-L
需要一个目录作为参数。你正在传递图书馆的名称

只要做:

gcc main.c -L/Libraries/lib -lRNA -ILibraries/include/ViennaRNA
或者直接链接到
文件的绝对路径:

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

-L
选项指定库文件所在的目录。

-L
选项指定库文件所在的目录。

gcc
-L
选项(实际传递到
ld
)需要一个目录(在该目录中可以进一步查找
-L
选项)

-I
选项需要包含头文件的目录

所以你想要

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

您确实希望所有警告(
-Wall
)和调试信息(
-g
)能够使用
gdb
调试器。

gcc
-L
选项(实际传递到
ld
)需要一个目录(在该目录中可以找到更多的
-L
选项)

-I
选项需要包含头文件的目录

所以你想要

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

您确实需要所有警告(
-Wall
)和调试信息(
-g
)为了能够使用
gdb
调试器。

我尝试了第一个调试器,它说:/usr/bin/ld:not find-lRNA collect2:error:ld返回了1个退出状态。我尝试了第二个调试器,它说:gcc:error:/Libraries/libRNA。答:没有这样的文件或目录我更改了目录,它工作正常,谢谢。但是它说“文件未识别:文件格式未识别”。可能.a文件是使用Mac中的“make”命令创建的,这与ubuntuYes不兼容您必须在ubuntu上重建.a文件。我尝试了第一个文件,它说:/usr/bin/ld:not find-lRNA collect2:error:ld返回1退出状态。我尝试了第二个文件,它说:gcc:error:/Libraries/libRNA。答:没有这样的文件或目录。我更改了目录,它工作正常,谢谢。但是它说“文件未识别:文件格式未识别”。可能.a文件是在我的Mac中使用“make”命令创建的,这与ubuntuYes不兼容,您必须在ubuntu上重建.a文件。