Compiling C code as static library for use in iPhone app? - c

Pardon me if this is a "noob" question, I'm overextending myself a bit with this.
I'm trying to compile a library written in C for use in an iPhone app I'm developing. I can't seem to figure out how to do this, and I've been searching and trying things for hours.
I've tried using an External Build System project, and selecting the folder where the makefile.in.am.mingw are.
I've tried creating a Static Library project and adding the header\source files to the project. Which looked good until I tried to compile and got 260k+ errors.
When I 'cd' to the directory with the makefiles and type 'make' I get:
No targets specified and no makefile found. Stop.
I have no idea how makefiles work, I just want to use the library!
Is there a simple way to do this? If someone could at least point me in the right direction, I would be quite appreciative.

The makefiles you have are for GNU automake (under MINGW by the look of it). Even if you get them working (automake can be tricky, but it is included in Mac OS X's development thankfully), it probably won't help you much in building an iPhone library.
I did this with an existing C library by creating a new framework target in Xcode with the right include settings, etc gleaned from looking at the makefiles. That created a .framework bundle with headers and an iPhone .a library ready to be used by an iPhone project. You could also just import the C source into the iPhone project, and have it compiled in that way which would probably be quicker.

Related

build legacy C code in eclipse

I inherited a project written in C, running on Linux, with Cmake files written by the previous person. The previous person did not use IDE for this project, so I found it a bit hard to maintain this fairly large sized project, and I'm new to Cmake unfortunately :(.
I want to use eclipse (my OS is Linux) for this project to help me understand the project faster, and be able to build and debug it in Eclipse, so I do not have to run the build scripts manually every time. The project was in Mercurial, hence I check it out into my repository using Eclipse, then I have some options:
Open the project, and somehow make it into a C project which I can compile
Convert the code into makefile project, use Cross GCC toolchian, try to add all the pathes to 'include', then try to build (I'm on this path, but it seems Eclipse Juno needs me to find the path to include files myself, which is a lot to add manually T_T)
Create a new makefile project, import the code gradually as I go, I'm not super familiar with the code yet...
Some other ways...
Any suggestions please?
Also, in my case, which of the 3 options mentioned in http://www.vtk.org/Wiki/CMake:Eclipse_UNIX_Tutorial would be a good choice?

cmake vs gmake for qtcreator project

I am attempting to use QtCreator as an IDE for a straight C project. The reason is that I am comfortable with QtCreator and I want a visual IDE for stepping through this new project I am working on. My development box and my deployment box are different, but both of those have gmake on them. QtCreator requires cmake, which I dont mind putting on my development box, but my deployment box is not going to have cmake.
Am I OK to build my software on the Qt box, and be sure it will deploy on the deployment box?
Edit: to be clear, the existing code base already has a makefile structure going, and I'd rather not interrupt that. If I can set my project up to use those existing targets and such it would be great.
If your project is using CMake as build system, then you should have it installed on the machine you are building. You can't pregenerate Makefile's and then just run make on the other box.
Well, you actually can, but then you will probably need same compiler versions, libs/headers located in same paths and etc. So generally it's not good idea.
As for deploying already compiled binaries - it have no relation to CMake. The general rule there is that you should have same shared libraries on both machines. Linking your project statically allows deploying single fat executable/library, without any additional dependencies.

How to correctly setup a C language project in Eclipse

I'm an experienced Java developer, and I'm very familiar with Eclipse. Lately I've been trying to migrate a Texas Instrumental(BLE), IAR C language project, into Eclipse, without using IAR official Eclipse plugin, I just want to use Eclipse as my code browsing IDE, while I learn how things works, and follow up the tutorial, and in the future use Eclipse to develop.
I've been trying for a day now, to migrate the project, but there is something I'm missing something regarding Eclipse C language support.
There are some types defined in an .h file, in project "A", which is referenced in an other .c file in project "B", and Eclipse although it can "go to declaration", it shows a compilation error in project "B".
I've noticed in other cases of the same scenario, that I don't need to point to any of the folders as source folder, as long as the folders are under the project root directory, they are added to the build path of that specific project, and also imported into a project "B" with only referencing the "A" project in the project properties, is this correct?
Also, I've noticed that in the C language both projects could reference each other, without Eclipse troubling me so I assume this is legit, therefore I assume there should be a C language multi-project structural pattern I should follow, where can I find such detailed specification?
Thanks,
Adam Zehavi.
Try this (Common Source Lookup Path preference)
Edit: in my Eclipse CDT Helios, I do like this:
Right click on project > Properties > C/C++ General > Paths And Symbols.
then choose my language (GNU C) and add the folders with the header files that I want to include.
That operation could be done automatically in one step for every configurations (Run/Debug) or just for the active configuration.
I've finally understood that this cannot be done... alas I've worked hard to been able to edit my code in Eclipse while running, debugging, and deploying the program to the Microprocessor via IAR IDE.
Go to Project > Properties > C/C++ General > Paths and Symbols Then click Export Settings... to save the include paths and/or symbol definitions to a file. In your other project, you can then use Import Settings...

xcode c include files

I would like to use XCode 4 as IDE for my C program.
I am using few libraries, which are not installed in system paths. Also, I am using external program for building (waf).
So, basically, I need XCode for everything, except building.
But I can't figure out how to tell XCode where my library include files are for it to be able to autocomplete functions and everything from that libraries?
In the build settings for the Target - look for the HEADER_SEARCH_PATHS setting.
Have you added the library headers to the project? You can just add them by reference.

Linking libsox in Windows

can anyone help me with linking libsox to my program in Windows? I have made a static library libsox.lib according to directions in INSTALL file in sox 14.2.0 source code version. Is there any way to build a dynamic library? I think it should be easier way...
What language are you using?
How are you currently building and linking the library?
This link gives some info on linking libraries in VC++ under windows, but without more info from you no-one will be able to help

Resources