mplink.exe should be selected in the IDE (It will in turn call _mplink.exe). IDE should be supplying the device name to the linker (with /p option) when it invokes the linker. In your case it is not happening for some reason.
Try using 'Restore Defaults' in 'MPLINK Linker' tab of Project Build Options (Project>Build Options> Project).
If that doesn't help, then check the 'Use alternate setting' check-box and add /p18F458 to the option string below the check-box.
Regards.
In case this problem has not yet been solved, or if it has then perhaps this will just serve as reference. The work around is as follows:
In MPLAB IDE go to Project->Build Options->Project. Under MPLINK Linker, tick Use Alternate Settings then add the linker option /pxxxxx (device type). See the script below:
/m"$(BINDIR_)$(TARGETBASE).map" /w /p18F67j60 /o"$(BINDIR_)$(TARGETBASE).cof"