Hi everyone i need some help im trying to compile a visual c++ program but theres a make file how do i us this to compile my program to exe im using windows xp thanks for your help

7 Years
Discussion Span
Last Post by helioptra

i guess theres no easy way to compile a makefile hu

If you are using visual C++ there is no need to compile the make file. There should be a file included in the source with a .proj extension. Load this file and set the build type to release. Go to the build menu, select build type, choose release, then build source. This process uses the make file to build all the sources needed to make your exe, a.out or what ever executable your aiming at to build. I hope I understood you question, if not please elaborate on what you are trying to do.



Ok im not new to visual basic but want to move over to c++ and i have source code that i want to learn from and it has a makefile there is no build for it because it has a lot of file when i try to open it only one file opens so thats why i want to compile it with the makefile i know you have to us it. thanks


this is what my make file has

# Makefile for linux.
# If you don't have '-mstring-insns' in your gcc (and nobody but me has :-)
# remove them from the CFLAGS defines.

AS86	=as -0 -a
CC86	=cc -0
LD86	=ld -0

AS	=gas
LD	=gld
LDFLAGS	=-s -x -M
CC	=gcc
CFLAGS	=-Wall -O -fstrength-reduce -fomit-frame-pointer -fcombine-regs
CPP	=gcc -E -nostdinc -Iinclude

ARCHIVES=kernel/kernel.o mm/mm.o fs/fs.o
LIBS	=lib/lib.a

	$(CC) $(CFLAGS) \
	-nostdinc -Iinclude -S -o $*.s $<
	$(AS) -c -o $*.o $<
	$(CC) $(CFLAGS) \
	-nostdinc -Iinclude -c -o $*.o $<

all:	Image

Image: boot/boot tools/system tools/build
	tools/build boot/boot tools/system > Image

tools/build: tools/build.c
	$(CC) $(CFLAGS) \
	-o tools/build tools/build.c
	chmem +65000 tools/build

boot/head.o: boot/head.s

tools/system:	boot/head.o init/main.o \
	$(LD) $(LDFLAGS) boot/head.o init/main.o \
	$(LIBS) \
	-o tools/system > System.map

	(cd kernel; make)

	(cd mm; make)

	(cd fs; make)

	(cd lib; make)

boot/boot:	boot/boot.s tools/system
	(echo -n "SYSSIZE = (";ls -l tools/system | grep system \
		| cut -c25-31 | tr '\012' ' '; echo "+ 15 ) / 16") > tmp.s
	cat boot/boot.s >> tmp.s
	$(AS86) -o boot/boot.o tmp.s
	rm -f tmp.s
	$(LD86) -s -o boot/boot boot/boot.o

	rm -f Image System.map tmp_make boot/boot core
	rm -f init/*.o boot/*.o tools/system tools/build
	(cd mm;make clean)
	(cd fs;make clean)
	(cd kernel;make clean)
	(cd lib;make clean)

backup: clean
	(cd .. ; tar cf - linux | compress16 - > backup.Z)

	sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
	(for i in init/*.c;do echo -n "init/";$(CPP) -M $$i;done) >> tmp_make
	cp tmp_make Makefile
	(cd fs; make dep)
	(cd kernel; make dep)
	(cd mm; make dep)

### Dependencies:
init/main.o : init/main.c include/unistd.h include/sys/stat.h \
  include/sys/types.h include/sys/times.h include/sys/utsname.h \
  include/utime.h include/time.h include/linux/tty.h include/termios.h \
  include/linux/sched.h include/linux/head.h include/linux/fs.h \
  include/linux/mm.h include/asm/system.h include/asm/io.h include/stddef.h \
  include/stdarg.h include/fcntl.h

Now that I know you are wanting to compile on Linux, thats a complete different critter.
whatever directory you have the source files in, change to that directory. make a directory to build in, like mkdir or md objdir. once your in the build directory (which is done so that there are no collisions in the build process. type the command ../configure ,
then make, then make install. If you are trying this on windows, you may or may not be able to compile to an exe depending on whether their are system calls in the source. If you are indeed using visual C++ on windows, all I can say is choose a project that is made for windows, using a Linux project to learn C++ on windows will only frustrate your experience and discourage you from really trying. C/C++ is as close as you can get to the bare metal, much better than basic of any variety. Though it does have its quirks...good luck with your programming career.


This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.