VS2015找不到stdlib.h的问题

意外原因,vs2015的ucrt库被我删了,然后又装上了。编译还是找不到stdio.h

检查库目录和包含目录,似乎值都是对的$(UniversalCRT_IncludePath) = C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt

最后的最后都开始抓狂了,才发现目录在C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0

尼玛,后面的240,150看到没。什么鸟问题!希望有同样问题可以引以为鉴

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
操作系统实验报告 实验4-4: Linux共享存储通信 实验目的 (1) 掌握Linux提供的共享存储区通信方式的使用方法。 (2) 了解共享存储区通信方法的特点。 (3) 了解实现进程间通信的不同方法之间的区别、特点和适用情况。 实验内容 (1)编写发送信息程序shmsnd.c和接受信息程序shmrcv.c,其功能分别为: //shmsnd.c// 创建一个共享存储区间; 将它附接到自己的地址空间; 循环写入若干信息,以"end"结束(提示:信息以追加方式存放到共享区中,可以用strcat()函数实现追加); 断开共享区; 结束。 //shmrcv.c// 创建/获取同一个共享存储区; 将它附接到自己的地址空间; 输入其中已经由发送地方输入的内容; 断开共享区 删除共享区 结束。 采用先执行发送进程、后执行接受进程来实现同步。 (2) 父进程创建一个共 存储区,然后创建子进程;采用终端实现父进程发送信息和子进程接受信息的同步;信息以"end"作为结束标志。 实验思考 共享存储区间通信有哪些优点?使用上有哪些限制?适用于哪种场合? 操作系统实验4-4实验报告全文共5页,当前为第1页。答:优点:这种通讯方式允许多个进程共享同一块物理内存空间来实现进程之间的信息交换,取消了中间环节是同一个计算机系统中多个进程间实现通讯的最快捷的方法。 操作系统实验4-4实验报告全文共5页,当前为第1页。 限制:共享内存必须共处同一个计算机系统,有物理内存可以共享才行。 适用:同一台电脑。 总结共享存储区通信与消息缓冲通信、管理通信方式各有哪些特点? 答:共享存储区通信:快捷、信息量大,但是不带同步工具,同步和互斥问题需要各进程利用其他同步工具解决,而且要求这些进程都在同一存储介质上运行,不方便网络通信。 消息缓冲通信:可以在任意进程之间通信,并且自带同步工具,使用方便,但是信息复制消耗CPU的时间,不适宜信息量大或操作频繁的场合。 管理通信:方便简单,但工作在单项通信方式,且只能在创建它的进程及其子孙进程之间共享。 实验代码 4-4-1: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<unistd.h> #include<sys/types.h> #include<sys/ipc.h> #include<sys/shm.h> main() { int shmid,running=1; char *viraddr; char buffer[BUFSIZ]; shmid=shmget(1234,BUFSIZ,0666"IPC_CREAT); viraddr=shmat(shmid,0,0); while(running) { puts("Enter some text:"); fgets(buffer,BUFSIZ,stdin); 操作系统实验4-4实验报告全文共5页,当前为第2页。 strcat(viraddr,buffer); 操作系统实验4-4实验报告全文共5页,当前为第2页。 if(strncmp(buffer,"end",3)==0) running=0; } shmdt(viraddr); exit(0); } #include<stdio.h> #include<stdlib.h> #include<string.h> #include<unistd.h> #include<sys/ipc.h> #include<sys/types.h> #include<sys/shm.h> main() { int shmid; char *viraddr; shmid=shmget(1234,BUFSIZ,0666"IPC_CREAT); viraddr=shmat(shmid,0,0); printf("Your message is:\n%s",viraddr); shmdt(viraddr); shmctl(shmid,IPC_RMID,0); exit(0); } 4-4-2: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<unistd.h> #include<signal.h> #include<sys/types.h> #include<sys/ipc.h> #include<sys/shm.h> void int_func(int sig); int k; void int_func(int sig) /*定义中断后要执行的函数*/ { k=0; /*修改循环变量的值*/ 操作系统实验4-4实验报告全文共5页,当前为第3页。} 操作系统实验4-4实验报告全文共5页,当
MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 玩转攻略手记 一份粗糙的研究记录,有待补完和整理。 MinGW: c -> o gcc -c a.c c -> exe gcc a.c libs.o -o a.exe (从主程序a.c,附加libs,生成a.exe) o -> exe gcc a.o b.o ... -o main.exe c -> dll,def,a gcc a.c -shared -o a.dll -Wl,--output-def,a.def,--out-implib,liba.a a -> dll a2dll liba.a dll -> a: dlltool --dllname a.dll --def a.def --output-lib liba.a (需要def文件) a -> def: dumpbin /exports lib.a > lib.def (在windows上调用,def需要修改) dll -> def : pexports a.dll -o > a.def (这里的-o是指给函数标序号) lib -> def : reimp -d a.lib lib -> a: (for __cdecl functions in most case) reimp a.lib; (for __stdcall functions) MSVC: c -> lib cl /LD a.c (注意已经定义了export列表) c -> dll cl /LD a.c c -> obj cl /c a.c c -> exe cl a.c /out:a.exe dll ->lib lib /machine:ix86 /def:a.def /out:a.lib (需要def文件) obj ->lib lib a.obj b.obj... /out:mylib.lib dll ->def DUMPBIN a.dll /EXPORTS /OUT:a.def (生成的def需要做修正) lib ->def reimp -d a.lib (这个要在MSYS+MinGW下用) 关于这些工具的适用范围可以很容易的理解和记忆。 dll和exe都是PE文件,所以可以使用pexports. lib和a是静态库文件,都是归档类型,不是PE格式。所以不能使用pexports. dll可以使用dlltool. lib可以使用lib, 和reimp(lib->a工具) 所有的bin文件,包括dll,exe,lib,a都可以使用dumpbin. 参考: http://hi.baidu.com/kaien_space/blog/item/5e77fafa2ba9ff16a8d3110a.html Mingw官网文档: http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs http://oldwiki.mingw.org/index.php/CreateImportLibraries http://www.mingw.org/wiki/FAQ http://hi.baidu.com/opaquefog/blog/item/9b21b6deb324e25dccbf1ab7.html http://qzone.qq.com/blog/8330936-1238659272 http://hi.baidu.com/jzinfo/blog/item/b0aa1d308de99f9da8018e00.html 本篇测试用代码: 1. main.cpp #include #include #include "mylib.h" using namespace std; int main() { char str[]="Hello world!"; printhello(str); return 0; } 2. mylib.cpp #include #include #include "mylib.h" using namespace std; void EXPORT printhello(char *str) { cout << str << endl; } 3. mylib.h #define EXPORT __declspec(

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值