通过g ++链接到外部静态库

时间:2015-06-24 01:23:27

标签: c++

我正在尝试在Macbook上使用终端执行一个名为“palindrome.cpp”的cpp文件。此cpp文件使用名为“libStanfordCPPLib.a”的外部库,该库位于“DIRECTORY TO CPP FILE / StanfordCPPLib”下,此库的相应头文件也位于此“StanfordCPPLib”文件夹中。
您可以通过此屏幕截图查看文件夹结构:enter image description here

我编译此源代码的代码是:

g++-4.8 -Wall -I/Users/myName/Downloads/CS106B/palindrome/StanfordCPPLib -L/Users/myName/Downloads/CS106B/palindrome/StanfordCPPLib palindrome.cpp libStanfordCPPLib.a

据我所知,-I代表头文件所在的目录路径,-L代表库(.a文件)所在的目录路径。这就是为什么-I和-L都是相同的目录路径“/ Users / myName / Downloads / CS106B / palindrome / StanfordCPPLib”。

但是,执行此命令会返回错误消息:“libStanfordCPPLib.a:No such file or directory”。如屏幕截图所示:enter image description here

谁能明白为什么会这样?感谢。

1 个答案:

答案 0 :(得分:0)

尝试使用-lStanfordCPPLib:

g++-4.8 -Wall -I/Users/myName/Downloads/CS106B/palindrome/StanfordCPPLib -L/Users/myName/Downloads/CS106B/palindrome/StanfordCPPLib palindrome.cpp -lStanfordCPPLib