[英]Compile C program with visual studio
我需要解释以下链接中的程序:
我在linux中编译以下代码:
................................. ...........................
(注意所有三个文件必须位于同一工作目录中才能进行编译。)
该命令是: gcc main.c csapp.c
当我执行该命令时,我得到了可执行文件: a.out
,我没有编译错误!
那个可执行文件可以从这里下载(我认为你不需要那个文件,如果我在哪里,我就不会执行那个文件)。
无论如何,我认为如果我可以调试程序,我将能够更好地了解正在发生的事情。 因此,我在visual studio中创建了一个C ++控制台空控制台项目。 我想在那里包含相同的文件,并能够编译它。 我之前从未使用过c ++而且我真的不知道在哪里放置头文件。 这就是我所希望能够编译程序的:
如果我放置这样的文件,程序将无法编译。
我也尝试将所有文件放在同一目录中,就像在linux虚拟机上一样:
那也不编译。
我如何能够使用visual studio编译该程序?
如果你看一下csapp.h,你会发现它试图包含这些标题:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <ctype.h>
#include <setjmp.h>
#include <signal.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <errno.h>
#include <math.h>
#include <pthread.h>
#include <semaphore.h>
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>
#include <arpa/inet.h>
其中一些是std C头,但其他一些是特定于POSIX / Linux / UNIX样式的操作系统(例如pthread.h)。 您将无法在Windows或Visual Studio中使用这些库,除非您正在做一些不寻常的事情,例如编译Cygwin库。
如果你想了解程序正在做什么,你可以做很多事情。 首先,只需阅读代码,然后在文档中查找它调用的函数(如果你有gcc,我猜你也有男人?)第二,是的,你可以打印到控制台来解决问题。 您也可以使用像gdb这样的调试器来逐步执行该程序,它不像VS调试器那样直观,但它可以工作......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.