Pet*_*ter 5 qt shared-libraries dynamic-linking ld qt-creator
我在Qt Creator中创建了一个C ++库项目。构建项目后,我有了libMylib.so,.so.1,.so.1.0,.so.1.0.0,Makefile和mylib.o文件。我将库标头添加到其他项目中,并将路径添加到.pro文件中,如下所示:
LIBS += "/home/peter/Workspace/build-Libtester-Desktop-Release/libMyLib.so"
Run Code Online (Sandbox Code Playgroud)
在构建应用程序时,没有出现此类文件错误,但是在运行该应用程序时,出现以下错误:
/home/peter/Workspace/build-Libtester-Desktop-Debug/Libtester: error while loading shared libraries: libMyLib.so.1: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我无法理解,因为它就在它似乎找到的.so旁边,因为当路径错误时,在尝试构建项目时出现这样的文件或目录错误。有人可以解释一下我在这里缺少什么吗?
谢谢你的时间。
小智 3
您错误地添加了库。你正在做:
LIBS += "/home/peter/Workspace/build-Libtester-Desktop-Release/libMyLib.so"
Run Code Online (Sandbox Code Playgroud)
代替:
LIBS += -L"/home/peter/Workspace/build-Libtester-Desktop-Release" -lMyLib
Run Code Online (Sandbox Code Playgroud)
第一个版本适用于 Windows,但不适用于 Linux。
基本上,您创建一个库,将其命名为“libMyLib.so”,然后指定其文件夹的路径,前面加上“-L”,然后在末尾执行“-lMyLib”,请注意,它不是“- llibMyLib”,但只是“-lMyLib”,尽管 .so 名称是“libMyLib”。
请参阅此处: https: //wiki.qt.io/How_to_create_a_library_with_Qt_and_use_it_in_an_application了解更多信息。
归档时间: |
|
查看次数: |
6099 次 |
最近记录: |