user20244: I build .hex files for Arduino. How can I do this in Linux? I use the Linux distro  Mint 17.2.
I need a program to make [.hex files] (in Linux). 
Can anyone help me?

user19513: You can download the Arduino IDE for Linux from the Arduino site.
As mentioned in Where are the hex files compiled by Arduino?, in the Arduino program: go to Arduino -> Preferences and then select Show verbose output during -> compilation. 

Finally, when you are compiling, the program will show you lots of
  data. At the last lines, you will find the path to the .hex file
  (Every time the path changes!).

If you want to upload this .hex file to your ATmega328P (the micro controller inside Arduino Uno), avrdude can do that for you. 
Here, are few useful links:

Setup Avrdude on Linux
Programming your chip
Choosing a Programmer
Uploading your .hex file


user6936: How are you creating your .hex files? Where are they coming from? Are you cross compiling the .hex files on some other machine and then transferring them to the Linux box? What is your Arduino connected to, the Linux box, or some other machine? Why are you even bothering with the .hex files? Your question is a little unclear. As Mikael states in his comment, you do not need to compile the .hex files, they are already compiled, you merely need to upload them, which the Arduino IDE would do for you anyway...
As ARK points out in his answer, you may find the answers to the question Where are the hex files compiled by Arduino? useful, although it seems like you know where they are but you don't know how to upload them.
Why can you not just use the Arduino IDE, to write your sketch, and then allow it to automatically compile the sketch and upload the .hex file for you? That way you do not need to manually play with the .hex file. Maybe I am missing something.
Is the Arduino IDE bombing out and not uploading the sketch on to the Arduino board?

However, if you are merely asking, how can I upload a .hex file to an Arduino, in Linux without using the Arduino IDE, then you would use avrdude. Taking the answer from How do I upload a hex file firmware to a target board without using the arduino IDE?
avrdude -C/usr/share/arduino/hardware/tools/avrdude.conf -v -v -v -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/tmp/build8135728863211847829.tmp/sketch_may21b.cpp.hex:i 

or alternatively, taking the answer from Uploading Arduino hex file using avrdude
avrdude -U flash:w:[put-hex-file-path-here]:i -C avrdude.conf -v -p atmega328 -b 115200 -c stk500v2 -P [put-device-path-here]


20244: <p>I build <code>.hex</code> files for Arduino. How can I do this in Linux? I use the Linux distro  Mint 17.2.</p>

<p>I need a program to make [<code>.hex</code> files] (in Linux). </p>

<p>Can anyone help me?</p>
 19513: <p>You can download the Arduino IDE for Linux from <a href="https://www.arduino.cc/en/Main/Software" rel="nofollow noreferrer">the Arduino site</a>.</p>

<p>As mentioned in <a href="https://stackoverflow.com/questions/11607834/where-are-the-hex-files-compiled-by-arduino">Where are the hex files compiled by Arduino?</a>, in the Arduino program: go to <strong>Arduino -> Preferences</strong> and then select <strong>Show verbose output during -> compilation</strong>. </p>

<blockquote>
  <p>Finally, when you are compiling, the program will show you lots of
  data. At the last lines, you will find the path to the .hex file
  (Every time the path changes!).</p>
</blockquote>

<p>If you want to upload this <code>.hex</code> file to your <strong>ATmega328P</strong> (the micro controller inside Arduino Uno), <code>avrdude</code> can do that for you. </p>

<p>Here, are few useful links:</p>

<ol>
<li><a href="http://www.ladyada.net/learn/avr/setup-unix.html" rel="nofollow noreferrer">Setup Avrdude on Linux</a></li>
<li><a href="http://www.ladyada.net/learn/avr/programming.html" rel="nofollow noreferrer">Programming your chip</a></li>
<li><a href="http://www.ladyada.net/learn/avr/programmers.html" rel="nofollow noreferrer">Choosing a Programmer</a></li>
<li><a href="http://www.ladyada.net/learn/avr/avrdude.html" rel="nofollow noreferrer">Uploading your .hex file</a></li>
</ol>
 6936: <p>How are you creating your <code>.hex</code> files? Where are they coming from? Are you cross compiling the <code>.hex</code> files on some other machine and then transferring them to the Linux box? What is your Arduino connected to, the Linux box, or some other machine? Why are you even bothering with the .hex files? Your question is a little unclear. As Mikael states in <a href="https://arduino.stackexchange.com/questions/23209/compile-hex-files-on-linux#comment-44093">his comment</a>, you do not need to <em>compile</em> the <code>.hex</code> files, they are already compiled, you merely need to <em>upload</em> them, which the Arduino IDE would do for you anyway...</p>

<p>As ARK points out in <a href="https://arduino.stackexchange.com/questions/23209/compile-hex-files-on-linux#answer-23213">his answer</a>, you may find the answers to the question <a href="https://stackoverflow.com/questions/11607834/where-are-the-hex-files-compiled-by-arduino">Where are the hex files compiled by Arduino?</a> useful, although it seems like you know where they are but you don't know how to upload them.</p>

<p>Why can you not just use the Arduino IDE, to write your sketch, and then allow it to <em>automatically</em> compile the sketch and upload the <code>.hex</code> file for you? That way you do not need to manually play with the <code>.hex</code> file. Maybe I am missing something.</p>

<p>Is the Arduino IDE bombing out and not uploading the sketch on to the Arduino board?</p>

<hr>

<p>However, if you are merely asking, how can I upload a <code>.hex</code> file to an Arduino, in Linux without using the Arduino IDE, then you would use <code>avrdude</code>. Taking the answer from <a href="https://electronics.stackexchange.com/questions/67121/how-do-i-upload-a-hex-file-firmware-to-a-target-board-without-using-the-arduino">How do I upload a hex file firmware to a target board without using the arduino IDE?</a></p>

<pre><code>avrdude -C/usr/share/arduino/hardware/tools/avrdude.conf -v -v -v -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/tmp/build8135728863211847829.tmp/sketch_may21b.cpp.hex:i 
</code></pre>

<p>or alternatively, taking the answer from <a href="https://stackoverflow.com/questions/23780125/uploading-arduino-hex-file-using-avrdude">Uploading Arduino hex file using avrdude</a></p>

<pre><code>avrdude -U flash:w:[put-hex-file-path-here]:i -C avrdude.conf -v -p atmega328 -b 115200 -c stk500v2 -P [put-device-path-here]
</code></pre>
