Programming :: Linking Application To Open Source Libraries
Feb 10, 2011
I would like to ask you something about open-source and linux. Is it possible to make a commercial application for linux and sell it compiling it with linking to open-source libraries without altering them and consequently without allowing download of the source code and without making the application itself free?
I have written an OpenGL based program which uses i.a. libjpeg that I want to link statically so I can send it to someone who doesn't have all the libraries needed installed to allow for a dynamically linked executable to run. As such I tried with giving the [b]-static[b] parameter to gcc.
I am running Fedora 13 on a ASUS G71G Trying to install GTK+ 2.4.8; after installing all the dependencies(Pango, Glib2.0, ATK), I ran ./configure from my GTK+ directory. It configured for a while, then this happened: checking for X... no configure: error: X development libraries not found I tried linking them with PKG_CONFIG_PATH=<path to X lib directory>, but I got the same error message. How do I get GTK+ to recognize the X development libraries? Additionally, does the default build of X11 on Fedora 13 contain the appropriate libraries? Ive included the GTK+ configure scripts as an attachment.
I have a library that I have ported from Windows, and is not a derivative work of Linux. The library is subject to copyright law, and I can't disclose the source. I would like to link a GPL application to this library, and want to know if the linking would cause the library to be GPL. If the library becomes GPL, is there some other way (kernel loadable module?) that I can keep my library from becoming a work of GPL?
After I downloaded the source for lua, I followed the install instructions, doing...
make linux install make generic install
I've also done the make test and it passes, printing out Hello World, from Lua 5.1. However, I can't link to the lua libraries in CodeBlocks. I know where lualib.a is (usr/local/lib) which I set in my Search Directories for the linker. I still get error messages like...
undefined reference to lua_isstring
P.S. I had this running on Windows via Visual Studio.
My principle machine is Ubuntu 10.10 (x86_64) with gcc version 4.4.5, but I'd like to run the compiled/linked code from it on a RHEL server release 5.4 with gcc version 4.1.2.
Now, the error at runtime is "version 'GLIBCXX_3.4.9' is not found (required by ./executable)". The server has /usr/lib64/libstdc++.so.6.0.8, but seems to need at least .so.6.0.9. However, the admin of the server will not allow the libraries to be updated as "the entire system is tied to an older version of glibc and forcing an upgrade could break the entire system especially when making the jump across major revisions."
He recommended that I build the newer version of glibc in my home directory and link against the libraries, but didn't offer direction on how.
I have a third party static library (libSTATIC.a) that I cannot recompile into a shared library. I want to create a shared library (libSHARED.so) that uses the C functions in the static library. Is it possible to do this? In other words, when linking a C program with gcc by using the -shared flag, is it necessary that all all libraries invoked in the program (even low level libraries such as libc for example) be available as shared libraries as well?
Basically, I'm trying to compile program A, which depends on LibA and LibB. LibA would not build with my version of G++ 4.4.3 due to a bug, so I've compiled the latest G++ 4.5 (installed in /opt directory) and built that library successfully (also installed in /opt).
I have LibB on my system already, but it was built with the 4.4.3 version. When compiling my final program, am I going to have issues because the .so files were built with different versions of gcc/g++? Or should I just rebuild a special version of LibB with the later version of the compiler just for that program? I can proceed and just see what happens, but I'm a little confused about how things work in a situation like this.
I wish to start development for the open source projects. And going to start working on some project in C/C++ and shell/python scripts. I wish to know the best suitable development environment for this purpose? What about eclipse? I will be interacting with git, make and other open source utilities.
I refuse to use .net for any of my apps since I hate using proprietary code that wont work on other platforms without using emulation.
However, I do like how all the hard work is done for you and you can spend more time implementing, then actually coding stuff like socket classes, date/time classes and other wrappers to make the complex C/C++ code easier to use and tie with each other I have a custom library that I've been adding to as I need stuff, but then I got thinking, there must be something out there with everything I need to code applications, that is easy to use and more reliable and efficient then anything I'd ever make.
I'm starting a open source project which involves web based Java, JBoss application server and JBoss Seam framework. I'm a student and I work on the project in my free time for training. Every one who want to take a part in this hobby project in his free time is invited. Send me e-mail.
I'm a .net programmer, and I'm looking to get more into open source software. I'd be happy to join a project, and hopefully learn something new. Where can I start?
I was wondering, what would be a good, open-source file format for a beginner in the field, like me, to start editing sound files? This file format would have to be well documented, preferibly open-source, lossless and, most of all, convertible to more popular file formats, such as mp3 or wav maybe. I would like to design my own sound effects through directly editing the binary sequence of a sound file. I imagine this editing would have the purpose of adjusting the voltage variations of the sound device's output in time. It would be perhaps something like a PC-controlled signal generator. I'm thinking I might be able to do this in linux with something like
Code:
$ dd if=mysound.raw of=/dev/audio
But then, which book or resource woule be a good and through explenation of the relationship between the bit sequence in mysound.raw and the signal function generated in the output of, say, my computer's sound card.
I am interested in using fortran and an external library called matio used to save arrays to matlab .mat files. I have installed the matio and matio-dev packages from synaptics but i cannot compile a code receiving an error Code: christos@christos-laptop:~/Desktop$ gfortran -o test test.f90 -lmatio -lz test.f90:2.13: USE MATIO 1
Fatal Error: Can't open module file 'matio.mod' for reading at (1): No such file or directory How can i load a module in order to use it in fortran through the GCC compiler?
Is there any open source virtual machine so i can study the source in order to create my own? i'm gonna write my own, so it doesNT matter if license does not allow further development of the code.
I'm having trouble installing software from the source files. From what I can gather the problem lies with not having the correct c libraries installed. My understanding is you use the ./configure, make, and make install commands in a terminal to install. And that the configure command checks to see if you have everything to install. this is the output when I try to configure:
checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p
We all know we can install a linux system such as Fedora 10 and use it. Being linux, one should in principle get the source codes for everything that has been precompiled (except the proprietary drivers such as nvidia) in the installation DVDs/CDs. Where are the source codes ? Is there a place I can download them ? To avoid confusion, I am not referring to the kernel source that can be compiled to give a linux kernel, but that does not include the drivers, such as intel_drv.so.
To be more specific, the intel graphic i810 driver has been built into any linux system, but where is the exact source? One answer may be that primary source intellinuxgraphics.com. However, if anyone tries to download the every changing (i.e., keep updated almost every single day) driver source codes from freedesktop.org, it is almost certain that the source codes will not be the same as the one that is finalized in Fedora 10.
This is probably a really stupid thing to ask considering the development I'm doing (effectivly creating a virus scanner), but how do I link classes/cpp files?I have 3 applications/sections that I can compile/combine with a makefile, that's fine, but I need them to run 1, 2, 3 once the output from the makefile is done.Currently the only section to actually run is whichever I have "main" in and obviously if I put that into all three, they won't compile as one.I've been looking all over the place at all sorts, header files and such, but there is no mention of how toually do this although I'm sure it must be possible. I'm used to being able to do this in Java and I'm sure I've seen C++ applications do it, but not worked out how.I have 3x .cpp files which are combined into one using a makefile:
I have a platform independent compiler. so, i created the common api's and platform api's using my complier. so i have this library files named cmn_api.a & platform_api.a in my auto/linjtag/lib.(they will be created when we run the makefile of the compiler).
The problem is when i'm trying to run the console application of my compiler. i have a menu.c from which i choose different modes and i operated on that.
When i tried to open one of the executable i'm getting this error: