日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Visual Studio上一些Error的解決方案

作者:FussyCat 更新時間: 2022-07-26 編程語言

近期在遷移一個linux上下項目到windows,編譯時出來一堆error,挑了一些做記錄。

目錄

  • 1、E1696無法打開源文件 unistd.h
  • 2、E0020 未定義標識符 "getcwd"
  • 3、E0020 未定義標識符 "strcasecmp"
  • 4、E0020 未定義標識符 "F_OK"
  • 5、E0135 namespace "std" 沒有成員 "cerr"
  • 6、E0135 namespace "std" 沒有成員 "string_view"
  • 7、C2065 “ssize_t”: 未聲明的標識符

1、E1696無法打開源文件 unistd.h

無法打開源文件 <unistd.h>
無法打開 源 文件 “unistd.h”
在這里插入圖片描述
【解決方案】
方案1:將<unistd.h>改為 “unistd.h”
結果:無效

方案2:視圖-屬性頁-預處理器-預處理器定義,只保留“WIN32”,如圖:
結果:無效
在這里插入圖片描述
【方案3】頭文件引入用宏隔離

#ifdef _WIN32
#include <io.h>
#else
#include <unistd.h>
#endif

【結果】有效

2、E0020 未定義標識符 “getcwd”

在這里插入圖片描述
【方案】先了解下 getcwd 的使說明,從Microsoft官網上看,是方法棄用了,改為_getcwd.
官網鏈接
在這里插入圖片描述
【方案】用宏隔離,重定義

#ifdef _WIN32
#define getcwd _getcwd
#endif

3、E0020 未定義標識符 “strcasecmp”

在這里插入圖片描述
【方案】用宏隔離,重定義

#ifdef _WIN32
#define strcasecmp _stricmp
#define strncasecmp _strnicmp
#endif

4、E0020 未定義標識符 “F_OK”

在這里插入圖片描述
【方案】直接宏定義賦0

#define F_OK 0

5、E0135 namespace “std” 沒有成員 “cerr”

在這里插入圖片描述
【方案】24行注釋掉/刪除

6、E0135 namespace “std” 沒有成員 “string_view”

在這里插入圖片描述
【方案】查一下string_view的使用說明,是c++17的特性,編譯依賴c++17即可。
官網鏈接
在這里插入圖片描述
在這里插入圖片描述

7、C2065 “ssize_t”: 未聲明的標識符

在這里插入圖片描述
【方案】宏隔離,重定義
#ifdef _WIN32
#define ssize_t size_t;
#endif

原文鏈接:https://blog.csdn.net/FussyCat/article/details/125811228

欄目分類
最近更新