C/C++编译器LINKED错误的两种原因(error: undefined reference)

原因1 Makefile 或者 Android.mk引用了头文件,没有指名库文件

include $(CLEAR_VARS)
LOCAL_SRC_FILES := HttpHeader.cpp HttpParser.cpp main.cpp
LOCAL_C_INCLUDES := external/libxxx/include		
LOCAL_MODULE := TestHttp
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
LOCAL_SHARED_LIBRARIES := libxxx 或者 LOCAL_STATIC_LIBRARIES := libxxx
LOCAL_MODULE_TAGS := optional
LOCAL_CFLAGS=-ldl
LOCAL_PRELINK_MODULE := false
include $(BUILD_EXECUTABLE)

原因2 C和C++混搭的代码,C++的代码引用了C代码的头文件,没有加extern "C"{#include "xxx.h"}

extern "C"{
  #include "xxx.h"
}


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

void main(){
  ....
}



你可能感兴趣的:(C/C++编译器LINKED错误的两种原因(error: undefined reference))