口没有了"can't add ... to system symbol table"的输出.
调试器的Virtual Console输出如下:
loadAoutLib error: can't add 'test.o_text' to system symbol table - error = 0x3d
0001.
loadAoutLib error: can't add 'test.o_data' to system symbol table - error = 0x3d
0001.
loadAoutLib error: can't add 'test.o_bss' to system symbol table - error = 0x3d0
001.
loadAoutLib error: can't add '_test' to system symbol table - error = 0x3d0001.
undefined symbol: _printf
S_objLib_OBJ_ID_ERROR
我在objLib.h找到了一个与S_objLib_OBJ_ID_ERROR有关的宏定义,但看不明白:BJ_VERIFY(objId,classId)
/*******************************************************************************
*
* OBJ_VERIFY - check the validity of an object pointer
*
* This macro verifies the existence of the specified object by comparing the
* object's classId with the expected class id. If the object does not check
* out, errno is set with the appropriate invalid id status.
*
* This macro also checks for the existance of an windview instrumented object.
*
* RETURNS: OK or ERROR if invalid object id
*
* NOMANUAL
*/
#define OBJ_VERIFY(objId,classId) ( ( (((OBJ_ID)(objId))-> pObjClass == (struct obj_class *)(classId)) || ( ((OBJ_ID)(objId))-> pObjClass && (((OBJ_ID)(objId))-> pObjClass == (CLASS_ID)(((struct obj_class *)(classId))-> initRtn)) ) ) ? OK : (errno = S_objLib_OBJ_ID_ERROR, ERROR) )