How to use already built c library in android application - c

I have a .so file, and cannot find out how to use it in an android app in android studio.
Tried a variety of things, messing around in CMakeLists.txt and native-lib.cpp, but nothing would add this to the libraries available.

Related

Structure and dependencies of cross-platform CMake project

What is the right way to include external dependencies into CMake project? I've seen in some projects and dependencies, people add dependency as a git submodule, some find-scripts ExternalProject and package managers (conan).
So, the project is cross-platform (Windows, Android, in perspective iOS, macOS, Linux and others) and needs cross-compiling. The project is closed source, so user gets compiled binary. Cross-compiling is very important. Some of platforms require special dependencies (example: desktop needs GLFW).
One of solutions I think about: write a script (I think, python, because I need ability to compile project as in Windows as in Linux), which will compile all the dependencies for given platform (toolchain), put them in right folders and generate a script with paths to the libraries.

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.

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.

Alternative gettext lib in C?

I have an Android NDK project entirely in C. I have a bunch of .po files, and libintl configured currently.
Unfortunately, according to a Google dev, it looks like I am SOL expecting to use gettext in my project, as Android doesn't support setting locales at such a low-level.
Are there any ways I can continue to support localization my project?
I'm not shure you are looking for this lib but you can try https://code.google.com/p/mofilereader/downloads/detail?name=moFileReaderSDK-0.1.3.zip

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

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.

Resources