We're going to use the command line program ExifTool (by Phil Harvey) to extract coordinates from a gpx file and embed them in a directory of images.
Firstly, install exiftool using brew. Here's the command:
brew install exiftool
Copy the gpx files into your image directory and initiate the sync with the geotag flag:
exiftool -geotag=gpslog2014-12-10_212401.gpx ./
It is possible to also specify multiple gpx files (e.g. multiple day trip):
exiftool -geotag=gpslog2014-12-10_212401.gpx -geotag=gpslog2014-12-07_132315.gpx -geotag=gpslog2014-12-08_181318.gpx -geotag=gpslog2014-12-10_073811.gpx ./
And finally, you can include a time offset with the geosync flag. For instance, I had an 11-hour (39600 seconds) difference due to a timezone hiccup with my new camera, so we can get rid of that:
exiftool -geotag=gpslog2014-12-10_212401.gpx -geotag=gpslog2014-12-07_132315.gpx -geotag=gpslog2014-12-08_181318.gpx -geotag=gpslog2014-12-10_073811.gpx -geosync=39600 ./
It will process the images, renaming the original with an ".original" extension, and give you a report at the end:
1 directories scanned 193 image files updated 83 image files unchanged
For any additional manual geocoding I fallback on Picasa's Places feature to add the coordinates.
If you have Lightroom, then try doing a search for a suitable ExifTool Lightroom plugin, as there seem to be a few.