Primary obstruction to the existence of a cross-section of $V_{n - q}(\omega)$ is a cohomology class in $H^{2q+2}(B, \pi_{2q+1} V_{n - q}(F))$? Let $V_{n -  q}(\mathbb{C}^n)$ denote the complex Stiefel manifold consisting of all complex $(n - q)$-frames in $\mathbb{C}^n$, where $0 \le q < n$. This manifold is $2q$-connected, and$$\pi_{2q + 1} V_{n-q}(\mathbb{C}^n) \cong \mathbb{Z}.$$Given a complex $n$-bundle $\omega$ over a CW-complex $B$ with typical fiber $F$, we can construct an associated bundle $V_{n-q}(\omega)$ over $B$ with typical fiber $V_{n-q}(F)$; consider the vector bundle $\text{Hom}(B \times \mathbb{C}^{n-q}, \omega)$ over $B$, and take the open subvariety of homomorphisms $u$ such that $u_b$ is injective for each $b \in B$. How do I see that the primary obstruction to the existence of a cross-section $V_{n-q}(\omega)$ is a cohomology class in$$H^{2q+2}(B, \pi_{2q+1}V_{n-q}(F))$$which can be identified with the Chern class $c_{q+1}(\omega)$?
Edit. To clarify what definition of the Chern classes I am using, I am using the one in Milnor-Stasheff where the top Chern class is the Euler class of the realification and the lower ones are defined by induction.
 A: The fiber $V_{n - q}(F)$ is $2q$-connected, so it is not hard to construct a equivalence over the $(2q + 1)$-skeleton. We clearly can take sections over each vertex in the $0$-skeleton in the same connected component, then we can connect them on the 1-skeleton via paths because it is connected, then we can fill in with disks on the 2-skeleton because it is simply connected, and so forth. We then construct the "primary obstruction" as usual in $H^{2q + 2}(B, \pi_{2q + 1} V_{n - q}(F))$. Trying to extend to the $(2q + 1)$-skeleton gets us, through the attaching maps, an element$$\mathfrak{o}_{q + 1} \in H^{2q + 2}\left(B, \pi_{2q + 1}(V_{n - q}(F))\right) = H^{2q + 2}\left(B, \mathbb{Z}\right)$$in exactly the same way we discussed in class from traditional obstruction theory. According to Chapter 12 of Milnor, this construction is natural.
So in order to show that $\mathfrak{o}_{q + 1} = c_{q + 1}$, we can simply show it for the tautological bundle $\gamma^n$ on the infinite complex Grassmannian of $n$-planes, because any relation will pull back. By the results on the structure of the cohomology ring, we have$$\mathfrak{o}_{q + 1} = p(c_1, c_2, \ldots, c_q) + \lambda c_{q + 1}$$for some unique polynomial $p$ and some unique constant $\lambda$. This relation we are taking at first to be for the tautological bundle $\gamma$, but by pullback, it has to hold for any bundle.
Let us look at the bundle $\gamma^q \oplus \epsilon^{n - q}$, over the infinite complex Grassmanninan of $q$-planes, where $\epsilon$ denotes the trivial line bundle. Evidently, this has $n - q$ independent linear sections, so $\mathfrak{o}_q$ should vanish. However, clearly $c_{q + 1} = 0$, because this is stably equivalent to a $q$-dimensional bundle, hence we get$$p\left(c_1\left(\gamma^q\right), c_2\left(\gamma^q\right), \ldots, c_q\left(\gamma^q\right)\right) = 0,$$so $p = 0$ because we know from structure results that there is no nontrivial polynoimal relation on these classes.
Lastly, we find that $\lambda = 1$. Let $\gamma_1$ be the tautological line bundle  over $\text{Gr}_\mathbb{C}(q + 1, q + 2)$, identified through orthogonal complements of the moduli as $\mathbb{C}P^{q + 1}$. Then let us look at$$\mathfrak{o}_{q + 1}\left(\gamma_1^{q + 1} \oplus \epsilon^{n - q - 1}\right) = \lambda c_{q + 1}\left(\gamma_1^{q + 1} \oplus \epsilon^{n - q - 1}\right).$$We want them to actually be equal to conclude that $\lambda = 1$. However, when $q + 1$ is the dimensional of the bundle, i.e. $q + 1 = n$, which is clear because the Chern class and the Euler class are both the obstruction class by Theorem 12.5 in Milnor, because a complex nonzero global section exists evidently if and only if a section of the bundle considered as a real bundle does. Otherwise, it follows because obstruction classes are clearly stable from their primary obstruction interpretation, i.e. we can add, delete trivial factors without modifying anything. Hence, we can reduce the case to $\mathfrak{o}_{q + 1}(\gamma_1^{q + 1}) = w_{q + 1}(\gamma_1^{q + 1})$, which follows again from the Euler class argument.
