使用-L和-L标志与将库文件作为输入进行比较
Using -L and -l flags vs giving library file as input
写有什么区别
g++ test.cc -L/my/dir/ -lname
和
g++ test.cc /my/dir/libname.so
?
两者都正确吗?
我能想到的事情:
- 第一个是跨平台的,MINGW的g++将查找DLL
- 在第二个示例中,我们明确指定要动态链接
区别在于
g++ test.cc -L/my/dir/ -lname
即使/my/dir/libname.so
不存在也可能成功:
- 它可以从系统库目录中找到
libname.so
(通常是/lib
、/usr/lib
( - 它可以找到
libname.a
,并进行静态链接
此外,它允许您从同一目录链接到多个库,而无需重复父目录。
第一个方法在链接时查找库文件的/my/dir目录。然而,只有一个简短的库名称libname.so
(或根据操作系统找到的任何名称(被写入图像中。当程序启动时,它将在某个库路径中查找库,即linux上的LD_library_path。现在,您可以将可执行文件和库重新定位到不同的新位置,并在重新定位后设置正确的搜索路径。
第二种方法将库的完整路径写入图像:/my/dir/libname.so
。当程序启动时,它将查找此特定路径以获取库。这使得映像不可重新定位,除非新环境中存在相同的库路径。效果类似于"-rpath"方法。
相关文章:
- 我的 c++ 程序似乎没有发现字符串和我拥有但输入使用 getline 的变量之间的比较
- 我正在尝试从输入文件中读取,然后使用它们的子字符串比较字符串的特定部分
- 使用-L和-L标志与将库文件作为输入进行比较
- 通过与输入进行比较来安排输出
- 将私有对象变量与用户输入的变量进行比较
- 输入迭代器的相等性比较
- 将用户输入的术语与 txt 文件中的列表进行比较
- 将 ProcessEntry32.szExeFile 与用户输入的数据进行比较时,C++ _wcsicmp代码未编译
- 如何使用文件填充数组并将其与用户输入C 进行比较
- 从类中查看 rand() 并将用户输入与计算机选择进行比较.石头,纸,剪刀游戏
- (C++) 学习向量 - 编码/输入流终止/比较向量的问题
- 在比较特定输入中的程序的数组中出错
- 将最大最小值的数据与可变数量的输入进行比较 C++
- c++ 输入一个数字来确定其他数字,然后比较它们
- 比较输入的C弦与文件读取c-string
- 将用户输入与矢量中存储的值进行比较
- C++ - 读取和比较用户输入
- 将结果与用户输入-SQLITE3 C 进行比较
- 正在检查用户的有效输入并与文本文件进行比较
- C++如何将用户输入与具有严格排序的字符串列表进行比较