A
A
Amomum2016-03-09 15:56:51
linux
Amomum, 2016-03-09 15:56:51

How to write programs under linux?

I am an embedded programmer and I am used to the fact that the project folder contains all the files necessary for compilation. Another programmer took your project folder and everything compiles for him too. I'm pretty vague about how to properly use shared libraries (whether dll or so).
Some time ago, we needed to write small Linux programs for single-board computers (for both ARM and x86), and we tried to save this property (we didn’t succeed).
Given that all my colleagues and I are on Windows, we went the following way:
- We found cross-gcc (for ARM and for x86).
- Set up eclipse and set up remote debugging on single-payers via ssh.
In principle, this solution works, the binary is obtained. But there are several problems:
- The path to the compiler is hardcoded in the project settings
- All libraries that are not supplied with the compiler have to be compiled on a single-board platform, dragged into Windows and then manually linked. One by one. The paths are also hardcoded.
- Resources can only be linked via objcopy.
I have a strong suspicion that the above method is a perverted set of crutches. But unfortunately I haven't found a better way.
- You can develop directly on a single-platform, but some cannot be connected to a monitor, and I am corrupted by graphic IDEs and am not mentally ready for vim / emacs.
- It would be possible to put Linux on a working computer (or a virtual machine with Linux), but compiling under ARM will still require a cross-compiler and libraries compiled under ARM.
Actually, the question is: how do normal people do it?

Answer the question

In order to leave comments, you need to log in

3 answer(s)
S
sim3x, 2016-03-09
@sim3x

askubuntu.com/questions/250696/cross-compile-for-arm
www.acmesystems.it/arm9_toolchain
A build machine is needed when the software is built for several hours, but its config should also be more powerful than that of workstations
Each distribution kit there is a set of libs that are immediately included in the delivery or they can be installed with a package manager
Linux has its own hierarchy of directories, what lies where and what should be put where
Most of the software available in Linux can be obtained either directly from $ PATH or from strictly defined IDEA directory
is supported by vagrant, maybe your IDE too - so you don't have to write much via ssh

A
Alexander Movchan, 2016-03-09
@Alexander1705

CMake .

A
Andryukha, 2016-03-09
@syrov

Joining cmake. The "everything you need in one folder" idea is interesting, but it doesn't scale. does not scale to large projects with many components and their own dependencies. For this, in fact, managers of such projects were created. Windows is focused on the ...Windows ideology, with a rotation around the MS Windows SDK, if you need something else, by itself (there are initiatives like nuget, but this is not an integral solution, but a patch). Gcc from another (eco)system. I install the package (pacman -S gcc ...) and all the packages are (magically) themselves, and I don't have to think where what, on another clump I install the same packages and that's it. No hard ways. This is a personal opinion.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question