Hi All,
Thanks in advance for your help. I am trying to add the source code from an existing c program to my c++ project developed in Xcode. I suspect I may be over simplifying, but I was hoping I could add the source files to my project, rename the main function in the c program and call the new function from a c++ class in my existing project. The c files compile fine, but when the program tries to link I get "symbol not found". I took a look at http://www.codeguru.com/forum/showth...source+program But adding the extern "C" to the headers doesn't help. I created a simple .h and .c file to show what I am trying to do:
temptry.h looks like:
#ifndef MY_H_
#define MY_H_
#include <stdio.h>
int my_main (int, char*);
#endif
and temptry.c look like:
#include "temptry.h"
int my_main(int argc, char *argv[]) {
printf("here\n");
}
I call my_main from my c++ class which includes "temptry.h"
If you wrap the header inclusion with extern "C" in your cpp files you have to make sure the C files are compiled using the C compiler and not the C++ compiler.
If you use MSVC check that the project properties - C/C++ - Advanced - Compile As is set to Default. If you use gcc/g++ it might do the same as default, if not there's absolutely some flag to force it.
You might also try to get rid of the extern "C" wrapping and compile all files as C++. Surprisingly often this works just as good.
If you still have problems post the linker errors.
Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by
definition, not smart enough to debug it.
- Brian W. Kernighan
Bookmarks