今天尝试使用Visual Studio 2017写Linux C++程序。这样就可以把我在Windows的Visual Studio 2017下实现的代码自动拷贝到实验室的Linux服务器上编译运行。
参考文档:
- Create a New Linux Project
- 知乎:如何在 Visual Studio 上用 C/C++ 写 Linux 程序?
- visual studio 2017搭建linux c++开发环境
遇到的问题及其解决方法:
-
并不是Windows下的整个工程目录的内容都会自动复制到Linux主机,默认只复制源代码文件。其他文件的复制需要自己配置好。(参考)
-
Windows下和Linux下的文件路径表示不同,如果程序涉及到文件读写,需要注意路径的修改。比方说本来这样的路径
D:\\Yuyan\\LinuxC++\\MOILS-linux\\MOILS-linux
应该改成/home/sysu502/projects/MOILS-linux
-
在Windows VS下可以正常运行的程序,在Linux下出现了Segmentation fault异常。最后发现原因是传入sort的比较函数写的不对。(C++ sort之Segmentation fault原因及其解决方法)
-
添加或删除到Linux、Mac或Windows等远程系统的SSH连接:工具->选项->跨平台->连接管理器->添加->填写主机名、端口、用户名、密码->连接->确定
-
ftp可以连接,但是上传不了文件,FlashFXP显示550 Permission denied。原因是服务器上的ftp配置文件没有配置好。通过
vi /etc/vsftpd.conf
编辑文件,编辑之前可能是readonly的文件,需要sudo chmod 777 /etc/vsftpd.conf
添加权限才可以进行编辑。最后,重启ftp服务器service vsftpd restart
-
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
Server-2: 40 Intel® Xeon® CPU E5-2640 v4 @ 2.40GHz
Server-3: 40 Intel® Xeon® CPU E5-2640 v4 @ 2.40GHz
Server-4: 40 Intel® Xeon® CPU E5-2640 v4 @ 2.40GHz
Server-5: 48 Intel® Xeon® Gold 5118 CPU @ 2.30GHz
-
某个工程要包含其他工程的代码
VC++ 目录 -> 包含目录
C/C++ 常规 -> 附加包含目录
包含了这些目录之后,也有可能会报错,这时候不要一直怀疑是目录链接等问题,而是应该看VS的error,error通常来说有很多,但是关键的就是几个,把关键的解决了就好。另外,要特别注意,error还可能藏着一堆warning中间。 -
无法启动远程调试
通常是因为你第一次是生成解决方案后把项目从远程主机上删除了,这时候重新生成解决方案就好。