C build = preprocessing + compile + link (from .c/.h file to executable file)
Compiling and Linking - Cprogramming.com
preprocessing:
process the #include and #define Macro etc
compilation:
Compilers convert the source code(.c and .h file) into object code, and create symbol for "function, global variable and static variable". During compilation, if the compiler could not find the definition for a particular function, it would just assume that the function was defined in another file. Compiler errors are restricted to single source code files and are the result of 'syntax errors". function/variable not declared will cause compiler error.
link:
the creation of a single executable file from multiple object files. function declared but not defined will cause link error.
- compiler error 查的是语法错误和函数/变量使用前是否被声明
- link error 查的是compile 过程中产生的symbol table,能不能找到对应的函数定义/ 变量redefine
so for MISRA rule checking, it is basically belongs to the compiling process, so we can apply MISAR rule by:
a. turn on the MISRA rule check in Tasking compiler
b. static code analysis in PRQA/QAC