1. 无法解析的外部符号 __imp_glclear
Posted by haifeng on 2021-04-29 10:24:41 last update 2021-04-29 10:24:41 | Answers (0) | 收藏
无法解析的外部符号 __imp_glclear
在项目【属性】-->【配置属性】-->【链接器】-->【输入】中,添加 OpenGL32.lib
Posted by haifeng on 2021-04-29 10:24:41 last update 2021-04-29 10:24:41 | Answers (0) | 收藏
无法解析的外部符号 __imp_glclear
在项目【属性】-->【配置属性】-->【链接器】-->【输入】中,添加 OpenGL32.lib
Posted by haifeng on 2021-04-29 10:22:47 last update 2021-04-29 10:28:21 | Answers (0) | 收藏
LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
【C/C++】-->【代码生成】-->【运行库】 ,
Posted by haifeng on 2021-03-14 21:21:11 last update 2021-03-14 21:21:11 | Answers (0) | 收藏
编译 C++ 项目时, 遇到如下问题:
LINK : warning C4727: 具有相同时间戳的名为
d:\...\calculator\release\calculator.pch 的 PCH 已存在于 d:\...\calculator\release\register.obj 和 d:\...\calculator\release\commands.obj 中。 使用第一个 PCH。
Posted by haifeng on 2021-03-02 13:44:00 last update 2021-03-02 15:55:32 | Answers (0) | 收藏
在使用 VS2019 时, 如果代码中使用了 fopen() 函数, 则在编译时会显示如下警告. C4996. 提示使用 fopen_s()
fopen() 函数的原型是
FILE *fopen( const char *filename, const char *mode );
而 fopen_s() 函数的原型是
errno_t fopen_s( FILE** pFile, const char *filename, const char *mode );
fp = fopen("users.txt", "rb+");
应该为
fopen_s(&fp, "users.txt", "rb+");
References:
https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/fopen-wfopen?view=msvc-160
https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/fopen-s-wfopen-s?view=msvc-160
Posted by haifeng on 2021-01-02 11:38:37 last update 2021-01-02 11:47:11 | Answers (0) | 收藏
一种方法是:
在 属性->配置属性->链接器->命令行中添加 /FORCE:MULTIPLE
但是这个治标不治本。
对于链接出现错误, 处理办法
https://blog.csdn.net/qq_37966125/article/details/105793236
Posted by haifeng on 2020-11-11 20:58:51 last update 2020-11-11 21:00:16 | Answers (0) | 收藏
Q. 在 Visual Studio 的编辑器中如何查询 a+(b-c) ?
A. 按 Ctrl+F, 键入 $a\+\(b-c\)$
如果要查询 b*c-a+d, 则需要键入 b\*c-a\+d
Posted by haifeng on 2020-09-21 23:34:42 last update 2020-09-21 23:36:52 | Answers (0) | 收藏
如果显示 #include 错误, 即找不到此文件, 那么很可能你改变了项目的相对位置.
比如项目位于 D:\work\cs\c++\vs2015\calculator_vc\calculator
现只是将 calculator 文件夹复制到 D:\work\cs\c++\vs2019\ 下面, 路径位 D:\work\cs\c++\vs2019\calculator
那么很可能就会出现找不到 stdio.h 这个问题.
解决办法: 将项目放到 D:\work\cs\c++\vs2019\calculator_vc\calculator
具体可以查看项目的属性.
1>------ 已启动生成: 项目: calculator, 配置: Release Win32 ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(411,5): error MSB8020: 无法找到 Visual Studio 2015 的生成工具(平台工具集 =“v140”)。若要使用 v140 生成工具进行生成,请安装 Visual Studio 2015 生成工具。或者,可以升级到当前 Visual Studio 工具,方式是通过选择“项目”菜单或右键单击该解决方案,然后选择“重定解决方案目标”。
1>已完成生成项目“calculator.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
解决办法:
右键点击项目, [属性]-->[配置属性]-->[常规]-->[平台工具集] 从原来的 Visual Studio 2015 (v140) (未安装) 修改为 Visual Studio 2019 (v142)
Posted by haifeng on 2019-05-30 15:27:42 last update 2019-05-30 15:27:42 | Answers (0) | 收藏
D:\VS2015>dotnet add package Win2D.uwp --version 1.23.0
“D:\VS2015\”中找不到任何项目。
使用情况: dotnet add <PROJECT> package [选项] <PACKAGE_NAME>
参数:
<PROJECT> 要操作的项目文件。如果未指定文件,则命令会在当前目录下搜索一个文件。
<PACKAGE_NAME> 要添加的包引用。
选项:
-h, --help 显示命令行帮助。
-v, --version <VERSION> 要添加的包版本。
-f, --framework <FRAMEWORK> 仅针对特定框架添加引用。
-n, --no-restore 在没有执行还原预览和兼容性检查的情况下添加引用。
-s, --source <SOURCE> 要在还原期间使用的 NuGet 包源。
--package-directory <PACKAGE_DIR> 要将包还原到其中的目录。
--interactive 允许命令停止和等待用户输入或操作(例如,用以完成身份验证)。
Posted by haifeng on 2019-02-19 14:20:38 last update 2019-02-19 14:20:38 | Answers (0) | 收藏
1. 已经安装 Visual Studio 2015
2. 已经单独安装 Android SDK ,路径为 D:\Lib\Android\android-sdk
启动 VS2015, 点击菜单栏【工具】-->【选项】-->【用于 Apache Cordova 的工具】-->【Cordova 工具】, 然后点击“运行依赖关系检查器”,
显示
软件/工具 | 问题 |
---|---|
Android SDK | 你的系统缺少此软件。你可能还需要在安装后对其进行配置。说明 |
Joyent Node.js | 你的系统缺少此软件。你可能还需要在安装后对其进行配置。说明 |
首先检查
【工具】-->【选项】-->【Cross Platform】-->【C++】-->【Android】页面中关于 Android SDK 的配置路径是否正确
提示仍需要配置
Posted by haifeng on 2019-02-17 14:07:05 last update 2019-02-17 22:56:39 | Answers (0) | 收藏
Windows 10 下使用 VS2015 编译的 curl
=========================
目的:编译的 curl
操作系统:Windows 10
编译工具:Visual Studio 2015
====================
准备工作:
1. 已经安装 Visual Studio 2015
开始
===
Step 1. 下载 curl 源代码
curl-7.64.0.tar.gz
网址: https://curl.haxx.se/download.html
解压缩至某个文件夹, 比如 D:\download\C++\curl\curl-7.64.0
Step 2.
其他的如 libssh2, nghttp2, openssl, zlib 从下面的网址下载
https://windows.php.net/downloads/php-sdk/deps/
这里分别下载
libssh2-1.8.0-vc14-x86.zip
nghttp2-1.32.0-vc14-x86.zip
openssl-1.0.2q-vc14-x86.zip
zlib-1.2.8-vc14-x86.zip
分别解压缩后,得到 bin\ include\ lib\ 三个文件夹,将它们拷贝到
D:\download\C++\curl\curl-7.64.0\deps\ 文件夹中
目录结构形如:
somedirectory\
|_curl-src
| |_winbuild
|
|_deps
|_ bin
|_ include
|_ lib
这里 somedirectory=D:\download\C++\curl\curl-7.64.0
curl-src=curl-7.64.0
Step 3. 切换至 winbuild 文件夹
cd D:\download\C++\curl\curl-7.64.0\curl-7.64.0\winbuild
Step 4. 详细阅读 BUILD.WINDOWS.txt
特别是下面这部分内容
Building with Visual C++
========================
Step 5. 编译
打开 VS 开发人员命令提示,执行下面的命令
nmake /f Makefile.vc mode=static VC=14 WITH_SSL=static WITH_NGHTTP2=dll WITH_ZLIB=static WITH_SSH2=static
nmake /f Makefile.vc mode=dll VC=14 WITH_SSL=static WITH_NGHTTP2=dll WITH_ZLIB=static WITH_SSH2=static
这里 VC=14 对应 VS2015,注意生成的是 x86 机器上的,即上面缺省 MACHINE=x86
然后在 builds 文件夹下有
libcurl-vc14-x86-release-static-ssl-static-zlib-static-ssh2-static-ipv6-sspi-nghttp2-dll
//---------------------------------
如果要加上 CARES,则首先下载c-ares-1.15.0.tar (https://c-ares.haxx.se/)
* 解压缩
* 阅读 INSTALL.md, P327, ### MSVC from command line
* 参见 [README.msvc]
* 编译步骤很简单
* 首先打开 VS 开发人员命令提示,然后输入下面的命令
* nmake -f Makefile.msvc
* 编译结束会生成 msvc 文件夹,其中有四个子文件夹
* msvc
* |_ acountry
* |_ adig
* |_ ahost
* |_ cares
* 其中 cares 文件夹包含了我们需要的文件(c-ares 库文件),而其余三个是例子程序,用到了这个库。
下面,为了编译 curl 和 libcurl, 在上面的 deps 文件夹下创建子文件夹 c-ares
将 cares 中的文件复制到
D:\download\C++\curl\curl-7.64.0\deps\c-ares
具体 c-ares 中的文件清单参见文末的附录
//---------------------------------
最后回到
D:\download\C++\curl\curl-7.64.0\curl-7.64.0\winbuild
在 VS 开发人员命令提示下键入如下命令
nmake /f Makefile.vc mode=static VC=14 WITH_SSL=static WITH_NGHTTP2=dll WITH_ZLIB=static WITH_SSH2=static WITH_CARES=static CARES_PATH=../../deps/c-ares
nmake /f Makefile.vc mode=static VC=14 WITH_SSL=dll WITH_NGHTTP2=dll WITH_ZLIB=static WITH_SSH2=static WITH_CARES=dll CARES_PATH=../../deps/c-ares
分别编译得到相应的 curl.exe 及其他文件.
========================================
See also
http://www.atzjg.net/admin/do/view_question.php?qid=2203
=========================
附录 A. c-ares 中的文件清单
=========================
其中 include 中的文件就是来自于 c-ares-1.15.0 中的 .c 和 .h 文件
D:\DOWNLOAD\C++\CURL\CURL-7.64.0\DEPS\C-ARES
+---bin
| cares.dll
| cares.exp
| caresd.dll
| caresd.exp
| caresd.pdb
|
+---include
| acountry.c
| adig.c
| ahost.c
| ares.h
| ares_android.c
| ares_android.h
| ares_build.h
| ares_cancel.c
| ares_create_query.c
| ares_data.c
| ares_data.h
| ares_destroy.c
| ares_dns.h
| ares_expand_name.c
| ares_expand_string.c
| ares_fds.c
| ares_free_hostent.c
| ares_free_string.c
| ares_getenv.c
| ares_getenv.h
| ares_gethostbyaddr.c
| ares_gethostbyname.c
| ares_getnameinfo.c
| ares_getopt.c
| ares_getopt.h
| ares_getsock.c
| ares_inet_net_pton.h
| ares_init.c
| ares_iphlpapi.h
| ares_ipv6.h
| ares_library_init.c
| ares_library_init.h
| ares_llist.c
| ares_llist.h
| ares_mkquery.c
| ares_nowarn.c
| ares_nowarn.h
| ares_options.c
| ares_parse_aaaa_reply.c
| ares_parse_a_reply.c
| ares_parse_mx_reply.c
| ares_parse_naptr_reply.c
| ares_parse_ns_reply.c
| ares_parse_ptr_reply.c
| ares_parse_soa_reply.c
| ares_parse_srv_reply.c
| ares_parse_txt_reply.c
| ares_platform.c
| ares_platform.h
| ares_private.h
| ares_process.c
| ares_query.c
| ares_rules.h
| ares_search.c
| ares_send.c
| ares_setup.h
| ares_strcasecmp.c
| ares_strcasecmp.h
| ares_strdup.c
| ares_strdup.h
| ares_strerror.c
| ares_strsplit.c
| ares_strsplit.h
| ares_timeout.c
| ares_version.c
| ares_version.h
| ares_writev.c
| ares_writev.h
| ares__close_sockets.c
| ares__get_hostent.c
| ares__read_line.c
| ares__timeval.c
| bitncmp.c
| bitncmp.h
| config-dos.h
| config-win32.h
| inet_net_pton.c
| inet_ntop.c
| nameser.h
| setup_once.h
| windows_port.c
|
\---lib
cares.lib
caresd.lib
libcares.lib
libcaresd.lib