ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I am a Win32 platform C++ programmer. One of my interest now is programming in the UNIX platform. I have several questions.
First off, I am not interested in scripting, per se, but rather real-world software design and implementation.
In UNIX, what tools including libraries, IDE, and compilers, are used when developing client/server application running both as a service and GUI?
What books do you recommend for developing client/server applications in UNIX using C++ that go over subjects such as multithreading, sychronization, multiple processes, services, and GUI?
There are two books that you might want to look at.
The Art of UNIX programming by Eric S. Raymond.
Advanced Programming in th UNIX Environment by W. Richard Stevens.
There is a book you can download - Advanced Linux Programming. You can find it
on the O'Reilly website.
Open source c++ software is written using g++. Intel also sells a compiler and libraries.
There is Kdevelop and a QT3 IDE that's included with any linux system.
Services are started by scripts in the /etc/rc.d/init.d directory. Those are shell scripts that start|stop|restart the actual services (daemons).
Good Luck. I'm sure others on this site can give you even better pointers.
>In UNIX, what tools including libraries, IDE, and compilers, are used when >developing client/server application running both as a service and GUI?
KDevelop is an IDE similar to MSVC, even with intellisense. But if you
want to be portable to other *NIX than Linux/KDE brand, stay with
gcc and make. (To glue together a project with make, you need a makefile. There are samples on the net, even configuration scripts like configure to setup a project automatically in a given *NIX environment.). Concerning GUI, you may want to take a look at GTK libs; they are easy to program
(http://www.gtk.org/tutorial/).
For multimedia stuff, use SDL libs - similar to DirectDraw/Sound/Input (yet easier). Even provides OpenGL interface.
For multithreading, search google for POSIX threads.
Network programming: Linux uses Berkeley sockets, just like under win32
(with minor differences).
Note: If you want to have your GUI project compilable under both and win, take a look at Trolltechs' QT and/or wxWindows.
>What books do you recommend for developing client/server applications >in UNIX using C++ that go over subjects such as multithreading, >sychronization, multiple processes, services, and GUI?
You'll find almost anything on the net. Otherwise, O'Reilly has some good books.
Anjuta is a great environment to help with Makefiles and uses gcc. It integrates with tools that allow you to 'drag n drop' to create GUI interfaces using the GTK and provides a good IDE. Eclipse is a good Java IDE if you're looking to get into that.
Unix Network Programming by W. Richard Stevens is good as well. However I think all of his books are in _C_ not _C++_.(the ones mentioned so far in this thread are in C)
Here is a link to a website that has released one of their books (Advanced Linux Programming). You can download the PDF files and sample source code. It has a chapter on threads in linux.
eclipse from the http://www.eclipse.org/ site is a fairly comprehensive C/C++/Cobol and Java IDE toolset. Redhat even has a "Redhat Developer Suite" that includes a RPM creation wizard. All of which are very useable for most projects.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.