Attention: Answers.ros.org is deprecated as of August the 11th, 2023. Please visit robotics.stackexchange.com to ask a new question. This site will remain online in read-only mode during the transition and into the foreseeable future. Selected questions and answers have been migrated, and redirects have been put in place to direct users to the corresponding questions on Robotics Stack Exchange. Additional details are available here.
No, you don't have to create header, when you build your message it will do that for you.
If the message you built is in the same package as your node, then you don't need to add package dependency, but if message was built in a different package, then you need to add that package as a dependency.