VS2019远程CentOS编译C++无法找到附加依赖库libTest.a
解决VS2019远程CentOS构建时找不到自制libTest.a的问题
我之前也碰到过一模一样的坑,折腾了好一阵才捋顺,给你几个实用的排查和解决方向:
确认库文件的实际路径与VS配置匹配
首先在CentOS机器上通过终端执行find / -name libTest.a,找到这个静态库的绝对路径(比如/home/your_username/custom_libs/libTest.a)。然后:- 要么在VS2019的「项目属性 -> 链接器 -> 输入 -> 附加依赖项」里填写完整的绝对路径;
- 要么把库所在的目录添加到「链接器 -> 常规 -> 附加库目录」,之后附加依赖项只填
libTest.a(或者更标准的写法-lTest,g++会自动补全lib前缀和.a后缀)。
检查远程构建的文件同步情况
VS远程构建会把本地项目目录映射到CentOS的临时工作目录(通常在/tmp/下的某个VS前缀文件夹)。如果你是把本地的libTest.a上传到远程,要确认它被同步到了远程构建的工作目录,或者你指定的库路径是CentOS本地的真实路径,而不是本地Windows的路径。查看链接器实际执行的命令
打开「项目属性 -> 链接器 -> 命令行」,查看生成的完整链接命令。有时候附加依赖项的配置可能没正确生效,你可以手动在命令行末尾加上-L/path/to/lib_directory -lTest来测试,看能不能成功构建。排查文件权限问题
确保CentOS上运行VS远程调试器的用户对libTest.a有读取权限。执行ls -l /path/to/libTest.a查看权限,要是权限不足,用chmod +r /path/to/libTest.a调整读取权限。
内容的提问来源于stack exchange,提问作者Johson Park Smith
相关产品推荐
相关产品推荐

