Which definition of an ore is correct?
Some of the terms are pretty vague and it isn't worth getting hung up on a precise definition.

Of the terms you use, "rock" is the vaguest. I means just about any hard thing you find in nature (and even that last qualification isn't precise as some people might call something like concrete an artificial rock). You can't infer anything much from the term "rock". Sometimes geologists might classify particular rocks into useful categories such as sandstone, granite or limestone. But the term is vague enough that rock formations might have more than one type of rock in them.

Ore is a more specific term. It does have a meaning but that meaning can change over time. Generally an ore refers to whether a useful product can be economically extracted from something. So if a rock formation contains a small amount of gold then it would count as an ore if the cost of extracting it was less than the amount the resulting gold could be sold for. But, sometimes, a geologist might refer to a particular mineral as the ore from which the desired substance is extracted. For example, she might call galena an ore from which lead is extracted. But this ignores the fact that galena is found in formations that contain many other minerals and has to be separated from them to be useful. More precise usage would be to define the ore as the rock formation containing enough galena for economic extraction of lead.

A mineral is usually a very precise term referring to a pure substance. Rocks are usually made of mixtures of minerals. Granite, for example, is made from quartz, feldspar and mica. The separate crystals are usually large enough to see with the naked eye. 

An ore is simply a rock formation (which might contain more than one type of rock) where one of the minerals in it is economically valuable.