如何在 VS2017 VC++ for Linux 项目中链接 libgattlib.so

如何在 VS2017 VC++ for Linux 项目中链接 libgattlib.so

我尝试在 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 错误并卡住了。我做了以下事情:

  1. /usr/include从 Linux 机器 复制到 Windows。
  2. D:\usr\include进入项目 -> 配置属性 -> VC++ 目录 -> 库目录
  3. 我想在我的项目中使用的库是 portaudio,因此我将 portaudio 添加到项目 -> 配置属性 -> 链接器 -> 输入 -> 库依赖项中
  4. -lportaudio -lrt -lpthread 到项目 -> 配置属性 -> 链接器 -> 命令行

相关内容