This way it will work on all platforms supported by Qt. The idea is that you have to separate the directory from the library name (without the extension and without any 'lib' prefix). Of course, if you are including a Windows specific lib, this really doesn't matter.
won't work because you're using white-spaces in Program Files. In this case you have to add quotes, so the result will look like this: LIBS += "C:\Program Files\OpenCV\lib".
我建议将库放在非空白位置; -)
我们使用 Qt 为 Linux、 Mac 和 Windows 开发应用程序。我们提供完整的,独立的应用程序。因此,所有非系统库都应该包含在部署包中。我们希望我们的客户能够运行的应用程序从同一个 USB 棒的所有操作系统。由于平台兼容性的原因,U 盘必须格式化为 FAT32,它不支持(Linux)符号链接。
我们发现 LIBS+= -Lxxx -lyyy的习惯用法太像一个黑匣子:
我们并不确切地知道链接器找到的(静态或动态)库的文件路径是什么。真不方便。我们的 Mac 链接器经常发现库与我们认为应该使用的库不同。这种情况在 OpenSSL 库中发生了好几次,Mac 链接器发现并使用了自己的(旧的、不兼容的) OpenSSL 版本,而不是我们请求的版本。
我们不能允许链接器使用指向库的符号链接,因为这会破坏部署包。
我们希望从库的 name中看到我们链接的是静态库还是动态库。
因此,对于我们的特殊情况,我们只使用绝对文件路径并检查它们是否存在。
首先,我们找出我们正在使用的操作系统,并将其放入 CONFIG 变量中。例如,对于 Linux 64位,那么: