Jump to content

simple C++ program refuses to build


  • Please log in to reply
4 replies to this topic

#1
djacobs

djacobs

    InsanelyMac Protégé

  • Members
  • Pip
  • 4 posts
Hi,

First of all i am new to developing under mac through use of xcode 4.0.
I've had experience coding for linux using emacs and gcc, and microsoft visual studio (for windows).

The problem that i'm facing now is the following, whenever i try to run the code below i get the following warning and error.
I kind of have a feeling xcode doesnt accept my main() function or so.

Can anyone shine some light upon this dark mystery?

With kind regards,
Djacobs.

***Code***
//
// main.cpp
//

#include <iostream>
#include "genlib.h"

int main()
{
cout << "Hello, World!\n" << endl;
return 0;
}



***Warning***
warning: no previous prototype for function 'Main' [-Wmissing-prototypes,3]
int main ()


***Error***
Undefined symbols for architecture x86_64:
"_main", referenced from:
start in crt1.10.6.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

#2
cili0

cili0

    InsanelyMacaholic

  • FAQ Team
  • 3,008 posts
  • Gender:Male
  • Location:Italy
what about using the classic main prototype?

[codebox]
int main(int argc, char **argv)
[/codebox]

just give it a try

ciao,
cili0.

#3
djacobs

djacobs

    InsanelyMac Protégé

  • Members
  • Pip
  • 4 posts

what about using the classic main prototype?

int main(int argc, char **argv)

just give it a try

ciao,
cili0.

I assume you mean "int main(int argc, char *argv[])", but no i've allready tried that.

#4
Airr

Airr

    InsanelyMac Protégé

  • Members
  • Pip
  • 17 posts
I think you need std:: in front of cout and endl.

#include <iostream>int main (int argc, char * const argv[]) {    std::cout << "Hello, World!" << std::endl;    return 0;}

OR, use the std namespace:
#include <iostream>
 
 using namespace std;
 int main (int argc, char * const argv[]) {
	 cout << "Hello, World!" << endl;
	 return 0;
 }


#5
djacobs

djacobs

    InsanelyMac Protégé

  • Members
  • Pip
  • 4 posts

I think you need std:: in front of cout and endl.

#include <iostream>int main (int argc, char * const argv[]) {    std::cout << "Hello, World!" << std::endl;    return 0;}

OR, use the std namespace:
#include <iostream>
 
 using namespace std;
 int main (int argc, char * const argv[]) {
	 cout << "Hello, World!" << endl;
	 return 0;
 }


Hi Airr,

I've just wanted to thank you to solve this issue.
It seems like i have to deepen myself into using the standard namespacing.
Once again thanks for the help.

With kind regards,
DJacobs.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy