Reax/c was a stand-alone MD code (by the Purdue group, called PureMD), but
it was never used with LAMMPS in that manner. LAMMPS invokes
force fields as “pair styles”, so you need a PairReaxC class and
pair_reaxc.cpp/h files for LAMMPS in invoke. In the case of reax/c, that class was created,
and it calls various functions and methods, some of them from the original PureMD
code, which are all included in the src/user-reaxc directory. Some
of them were morphed to work with LAMMPS.
Conceptually, there is no problem with any add-on class for
LAMMPS (pair style, bond style, fix style, compute style, etc), making
calls to a library that does the heavy lifting. Several pair styles
do that already (but not reax/c). The ReaxFF (Fortran) and MEAM potentials
(also Fortran) do that, as does fix poems and compute voronoi. The lib files
for these are in the lib dir. You build the lib first, then LAMMPS links
against them. The wrapper class, e.g. pair_meam.cpp/h is in a LAMMPS
package, src/MEAM in that case.