Reputation: 125
I have a C program that I was able to compile on windows using Code Block (which I believe uses GCC compiler) and on Linux using terminal gcc compiler. I tried to compile it on OSX using eclipse, code block for mac, terminal gcc, and even Qt but they all give me the same set of errors:
hw1.c:9:19: error: conflicting types for 'mergesort'
struct listnode * mergesort(struct listnode *data)
^
/usr/include/stdlib.h:281:6: note: previous declaration is here
int mergesort(void *, size_t, size_t,
^
hw1.c:27:25: error: too few arguments to function call, expected 4, have 1
ahead = mergesort(ahead);
~~~~~~~~~ ^
/usr/include/stdlib.h:281:1: note: 'mergesort' declared here
int mergesort(void *, size_t, size_t,
^
hw1.c:28:25: error: too few arguments to function call, expected 4, have 1
bhead = mergesort(bhead);
~~~~~~~~~ ^
/usr/include/stdlib.h:281:1: note: 'mergesort' declared here
int mergesort(void *, size_t, size_t,
^
hw1.c:68:25: error: too few arguments to function call, expected 4, have 1
node = mergesort(node);
~~~~~~~~~ ^
/usr/include/stdlib.h:281:1: note: 'mergesort' declared here
int mergesort(void *, size_t, size_t,
^
Upvotes: 0
Views: 253
Reputation: 86
It is most likely due to git.
stdlib.h on OS X already has a method called mergesort in it, so you cannot have that method declared in your code.
I suggest changing the name of mergesort
to something else, like myMergesort
(or something along that line).
Source: See here.
Upvotes: 1