我刚刚使用以下命令安装了 SFML 库:apt-get install sfml-dev
安装后,我进入我的/usr/lib
文件夹查找实际共享对象的名称是什么(这样我就知道告诉我的编译器要使用什么)。
但那里的名称中没有任何“SFML”的内容。
然而,我的 /usr/include 目录中有一个 SFML 文件夹。
那么,如果共享对象文件不在我的/usr/lib
目录中,它们在哪里?
我怎样才能找到它们,以便我可以弄清楚告诉编译器使用什么?
g++ *.cpp -o exe -l
?
答案1
gcc -print-search-dirs
显示编译器使用的所有搜索路径。
dpkg -L libsfml-dev
显示该包安装的所有文件;要找到实际的库,尽管您需要dpkg -L
在实际包含该库的包上运行(libsfml-dev
具有许多库依赖项)。
无论如何,库/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)
现在通常出现在 Debian 衍生品上,IE /usr/lib/x86_64-linux-gnu
在常见的 64 位 PC 上。不过,您实际上不需要担心编译器,它已经知道在哪里可以找到库 - 您只需要弄清楚要-l
为其提供哪些参数。