Sponsored Content
Top Forums Programming A question about Makefile run by GNU make Post 302423082 by dariyoosh on Thursday 20th of May 2010 06:29:34 AM
Old 05-20-2010
Quote:
Originally Posted by jharish
In simple words the error means there are two main functions since you have included file1.c twice here
Code:
gcc file1.c mathfun1.o file1.c -o file1

What you can do to solve your problem is build two object files mathfun1.o and file1.o and build the executable "file1" including both these object files. Your makefile would look something like this
Code:
CCFLAGS=-c -Wall
CC=gcc

file1:mathfun1.o file1.o
        $(CC) $^ -o $@

file1.o:file1.c
        $(CC) $(CCFLAGS) file1.c
mathfun1.o:mathfun1.c
        $(CC) $(CCFLAGS) mathfun1.c

clean:
        rm *.o file1

Regards,
Harish J

Hello there,


Thank you very much for your attention to my question. In fact this was the source of the problem. Here is therefore the new version of Makefile
Code:
CCFLAGS=-c -Wall
CC=gcc
.PHONY:clean

file1:mathfun1.o file1.o mathfun1.h
    $(CC) $^ -o $@

file1.o:mathfun1.h file1.c
    $(CC) $(CCFLAGS) file1.c

mathfun1.o:mathfun1.c mathfun1.h
    $(CC) $(CCFLAGS) mathfun1.c

clean:
    rm *.o file1

And everything works pretty well now.

Thank you very much!


Kind Regards,
Dariyoosh
Smilie
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Problems with gnu make

I am running a make file through the gnu make tool and i am getting the following error jsh1035c:/users/egate453/admegate/kapil/samples $ make -f GNUmakefile queue_c make -f ./GNUmakefile queue_c in_objdir=1 build_root=/users/egate453/admegate/kapil/samples make: Entering directory... (2 Replies)
Discussion started by: handak9
2 Replies

2. UNIX for Dummies Questions & Answers

make and clean in a single rule in the makefile.

Hi, This stems from the following thread https://www.unix.com/showthread.php?t=18299 I have a makefile which makes either executables or a shared library. i.e. make -f unix.mak will create the executables and make -f unix.mak libolsv will create the shared library. Since these have to be... (4 Replies)
Discussion started by: vino
4 Replies

3. UNIX for Advanced & Expert Users

Makefile problem - How to run module load in a Makefile

Hi, I'm trying to run the module load command in a Makefile and i'm getting the following error: make: module: command not found Why is this? Is there any way to run this command in a Makefile? NOTE: command - module load msjava/sunjdk/1.5.0 works fine outside of the Makefile (2 Replies)
Discussion started by: hernandinho
2 Replies

4. Shell Programming and Scripting

how to run a shell script through Makefile

I want to run a target defined in a shell script. The shell script name is 'ua.sc' and the target in it is 'N' i.e. (ua N) throught a makefile. How can i do it so that i can run it with a make target. (3 Replies)
Discussion started by: vineet.dhingra
3 Replies

5. Shell Programming and Scripting

Need help with a script to make makefile

How do we create a shell script that creates a makefile? what if we want to use the #include header files too? (2 Replies)
Discussion started by: sslokhan
2 Replies

6. Programming

Makefile No rule to make target

I am trying to create a makefile to build a program and am getting the following error: make -f tsimplex.mk make: *** No rule to make target `/main/tsimplex_main.cpp', needed by `tsimplex_main.o'. Stop. OPSYS = $(shell uname -s ) TARGET = tsimplex ROOTDIR = ../../.. GTSDIR =... (1 Reply)
Discussion started by: kristinu
1 Replies

7. Shell Programming and Scripting

Bash script from makefile - it is called each time i call make

I've created a tag in the makefile: mytag: $(shell ${PWD}/script.sh) When i do: make clean - the script is executed When i perform make or make mytag the script is again executed with the output: make: Nothing to be done for mytag What i want ? I want script.sh to be executed only... (0 Replies)
Discussion started by: Pufo
0 Replies

8. Solaris

SunOS 5.5.1 usage of Makefile command in make file

I am new to Solaris and compilation using make files. I have a code base which is organized into different folders. At the root folder is a master make file and in the sub directories, there are make files for that particular folder. In the make files present in subdirectories, I am seeing... (2 Replies)
Discussion started by: rajujayanthy
2 Replies

9. AIX

Error when run makefile to compile C program

I have a make file for C program, which always gives the error ld: 0711-738 ERROR: Input file ../src/file_name.o XCOFF32 object files are not allowed in 64 mode Does anybody know the problem? Thanks for contribution (2 Replies)
Discussion started by: digioleg54
2 Replies

10. Programming

Makefile instructions to create directories (CentOS7 , GNU Make 3.82)

Hello, My makefiles are set up to generate an environment specific build directory based on the local configuration and some values passed to make. It generally looks like, # compilers, may be passed to make CC++ = g++ FCOMP = gfortran # version of program, may be passed to make ver =... (4 Replies)
Discussion started by: LMHmedchem
4 Replies
CREATE_MAKEFILE 						  [FIXME: manual]						   CREATE_MAKEFILE

NAME
create_makefile - Creates Makefile.in and Makefile from a Makefile.am SYNOPSIS
create_makefile [relativepath/Makefile] [relativepath] DESCRIPTION
create_makefile creates the Makefile.in and Makefile in a subdirectory containing a Makefile.am. This script saves time compared to re-running configure completely Note that you must supply the path to the desired MakefileMakefile.am (though the final /Makefile may be omitted). This script may be run from the toplevel directory (the one containing configure) or from one of it's subdirectories. If the source directory is different from the build directory (see the environment variables below), it will be assumed that the Makefile.am and Makefile.in belong beneath the source directory and that the Makefile belongs beneath the build directory. This utility is part of the KDE Software Development Kit. ENVIRONMENT
One of the following variables (but not both) should be set if the source directory is different from the build directory. If the build directory is simply a subdirectory of the source directory, the simpler variable OBJ_SUBDIR should be used. OBJ_SUBJDIR Indicates that the build directory is in the given subdirectory of the source directory. For instance, if the source directory is kdesdk and the build directory is kdesdk/obj-i386-linux, then OBJ_SUBDIR should be set to obj-i386-linux. OBJ_REPLACEMENT A sed expression that is used to transform the source directory into the build directory. For instance, if the source directory is ~/src/kdesdk and the build directory is ~/src/kdesdk-obj, then OBJ_REPLACEMENT should be set to s#kdesdk#kdesdk-obj#. SEE ALSO
create_makefiles(1) AUTHORS
create_makefile was written by David Faure<faure@kde.org> and others. This manual page was prepared by Ben Burton<bab@debian.org> for the Debian GNU/Linux system (but may be used by others). [FIXME: source] March 8, 2003 CREATE_MAKEFILE
All times are GMT -4. The time now is 03:27 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy