![如何在 VS2017 VC++ for Linux 项目中链接 libgattlib.so](https://linux22.com/image/899815/%E5%A6%82%E4%BD%95%E5%9C%A8%20VS2017%20VC%2B%2B%20for%20Linux%20%E9%A1%B9%E7%9B%AE%E4%B8%AD%E9%93%BE%E6%8E%A5%20libgattlib.so.png)
我尝试在 VS2017(从我的 PC)中使用驻留在 Raspberry Pi 3 板上的 libgattlib.so 静态库构建 VC++ for Linux(Raspbian)项目。编译没有错误。我可以使用例如在项目中可靠地包含 .h 文件\\usr\include。我还需要引用 libgattlib.so 库文件。它位于 Raspberry Pi 3 上的 /usr/lib 中,并且链接正确(\\usr\lib)在 VS2017 中设置项目->配置属性->VC++ 目录->库目录和-lgattlib在项目->配置属性->链接器->输入->库依赖项但链接器报告错误:
目标链接:
1> Linking objects
1> Invoking 'ld'
1> g++ -o "/home/pi/projects/Id2Monitor_For_Linux/bin/ARM/Debug/Id2Monitor_For_Linux.out" -Wl,--no-undefined -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack /home/pi/projects/Id2Monitor_For_Linux/obj/ARM/Debug/main.o -lbluetooth -llibgattlib
1> /usr/bin/ld: cannot find -llibgattlib
1> /usr/bin/ld: cannot find -llibgattlib
1> collect2: error: ld returned 1 exit status
1> collect2: error: ld returned 1 exit status
1> /usr/bin/ld: cannot find -llibgattlib
1> collect2: error: ld returned 1 exit status
1> collect2 : error : ld returned 1 exit status
1> Done linking, output file name: '/home/pi/projects/Id2Monitor_For_Linux/bin/ARM/Debug/Id2Monitor_For_Linux.out'
1>Done building target "Link" in project "Id2Monitor_For_Linux.vcxproj" -- FAILED.
1>
1>Done building project "Id2Monitor_For_Linux.vcxproj" -- FAILED.
1>
1>Build FAILED.
1>
1>collect2 : error : ld returned 1 exit status
1> 0 Warning(s)
1> 1 Error(s)
请告诉我如何在 VS2017 中正确设置 libgattlib.so 库的引用。谢谢。
答案1
非常感谢。它帮助我解决了 Visual Studio 2017 中使用 Linux 远程编译器的问题。在需要包含 Linux 库的地方,我遇到了 __float128 错误并卡住了。我做了以下事情:
/usr/include
从 Linux 机器 复制到 Windows。D:\usr\include
进入项目 -> 配置属性 -> VC++ 目录 -> 库目录- 我想在我的项目中使用的库是 portaudio,因此我将 portaudio 添加到项目 -> 配置属性 -> 链接器 -> 输入 -> 库依赖项中
- -lportaudio -lrt -lpthread 到项目 -> 配置属性 -> 链接器 -> 命令行