title: Compiling a native code in android. Error: undefined reference to 'main'
body: <p>I want to compile <a href="http://delegate.org" rel="nofollow noreferrer">delegate</a> in android with NDK builder (in windows).</p>
  
  <p><a href="http://delegate.org" rel="nofollow noreferrer">DeleGate</a> is a multi-purpose proxy server for multiple application protocols running on multiple platforms. The aim of this document is to provide an introduction to how to use DeleGate by a collection of usage examples with a short tutorial for beginners.</p>
  
  <p>I'm new with NDK, any clue will be helpful.</p>
  
  <p>Here is the compelete error:</p>
  
  <pre><code>[armeabi-v7a] Executable     : delegated
  D:/dev/sdk/android/ndk-bundle-r15b/build//../platforms/android-16/arch-arm/usr/lib/../lib\crtbegin_dynamic.o:crtbegin_dynamic.c:function _start: error: undefined reference to 'main'
  clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)
  make: *** [D:/dev_app/android-ndk-master/test-jni2/obj/local/armeabi-v7a/delegated] Error 1
  </code></pre>
  
  <p>This is contents of Application.mk</p>
  
  <pre><code>APP_ABI := armeabi-v7a x86 arm64-v8a
  APP_PLATFORM := android-16
  APP_OPTIM := release
  </code></pre>
  
  <p>This is contents of Android.mk</p>
  
  <pre><code>LOCAL_PATH := $(call my-dir)
  
  include $(CLEAR_VARS)
  
  LOCAL_MODULE := delegated
  
  LOCAL_C_INCLUDES := \
      $(LOCAL_PATH) \
      $(LOCAL_PATH)/filters \
      $(LOCAL_PATH)/fsx \
      $(LOCAL_PATH)/gates \
      $(LOCAL_PATH)/include \
      $(LOCAL_PATH)/include-ce \
      $(LOCAL_PATH)/maker \
      $(LOCAL_PATH)/mimekit \
      $(LOCAL_PATH)/pds/md5 \
      $(LOCAL_PATH)/pds/regex \
      $(LOCAL_PATH)/rary \
      $(LOCAL_PATH)/resolvy \
      $(LOCAL_PATH)/subin \
      $(LOCAL_PATH)/teleport \
      $(LOCAL_PATH)/src \
  
  LOCAL_SRC_FILES := \
  #   filters/backup.c \
      filters/bdtee.c \
      filters/bdthru.c \
      filters/cafe.c \
      filters/cafemain.c \
      filters/cfi.c \
      filters/ciicgi.c \
      filters/dglogs.c \
      filters/dl.c \
      filters/dping.c \
      filters/expired.c \
      filters/fcl.c \
      filters/gzip.c \
      filters/htview.c \
      filters/htwrap.c \
      filters/m17nccx.c \
      filters/mkstab.c \
      filters/netzip.c \
      filters/pdft.c \
      filters/reclog.c \
      filters/regex.c \
      filters/sslway.c \
      filters/swft.c \
      fsx/any2fdif.c \
      gates/b2x.c \
      gates/Gates_Win32.c \
      maker/alloca.c \
      maker/avail.c \
      maker/bcopy.c \
      maker/bzero.c \
      maker/chown.c \
      maker/chroot.c \
      maker/closesocket.c \
      maker/dlopen.c \
      maker/dummy.c \
      maker/endhostent.c \
      maker/errno.c \
      maker/ERR_error_string_n.c \
      maker/fchmod.c \
      maker/fchown.c \
      maker/fcloseFILE.c \
      maker/fgetpos.c \
      maker/flockfile.c \
      maker/FMODE.c \
      maker/fork.c \
      maker/forkpty.c \
      maker/forkpty1.c \
      maker/fpurge.c \
      maker/fseeko.c \
      maker/fsync.c \
      maker/futimes.c \
      maker/futimes_.c \
      maker/Gates_Win32.c \
      maker/getcwd.c \
      maker/gethostbyname2.c \
      maker/gethostid.c \
      maker/getmsg.c \
      maker/getrlimit.c \
      maker/getrusage.c \
      maker/getwd.c \
      maker/getwinsize.c \
      maker/gxx.c \
      maker/inet_aton.c \
      maker/killpg.c \
      maker/link.c \
      maker/lstat.c \
      maker/malloc_size.c \
      maker/mkfifo.c \
      maker/mkmake.c \
      maker/mutex.c \
      maker/netsh_none.c \
      maker/nice.c \
      maker/nothread.c \
      maker/old_alloca.c \
      maker/opt_s_caps.c \
      maker/opt_s_htaccept.c \
      maker/opt_s_pilsner.c \
      maker/opt_s_sox.c \
      maker/opt_s_spinach.c \
      maker/opt_s_stls.c \
      maker/opt_s_vsap.c \
      maker/p2i.c \
      maker/p2ll.c \
      maker/pam_start.c \
      maker/pendingcc.c \
      maker/pendingcc1.c \
      maker/pthread_kill.c \
      maker/ptrace.c \
      maker/putenv.c \
      maker/readlink.c \
      maker/regex.c \
      maker/RSA_generate_key.c \
      maker/sendFd1.c \
      maker/sendFd2.c \
      maker/sendFd3.c \
      maker/setbuffer.c \
      maker/setegid.c \
      maker/seteuid.c \
      maker/setferror.c \
      maker/setlinebuf.c \
      maker/setlogin.c \
      maker/setproctitle.c \
      maker/setresuid.c \
      maker/setsid.c \
      maker/sgTTy.c \
      maker/sigaction.c \
      maker/sigmask.c \
      maker/sigsetmask.c \
      maker/snprintf.c \
      maker/socketpair.c \
      maker/socklen_s.c \
      maker/socklen_u.c \
      maker/spawnvp.c \
      maker/spawnvp_.c \
      maker/SSL_CTX_set_tmp_rsa_callback.c \
      maker/SSL_library_init.c \
      maker/SSL_set_SSL_CTX.c \
      maker/statvfs.c \
      maker/stdio.c \
      maker/strcasecmp.c \
      maker/strcasestr.c \
      maker/strdup.c \
      maker/strerror.c \
      maker/strncpy.c \
      maker/strrcasestr.c \
      maker/strstr.c \
      maker/Stty.c \
      maker/symlink.c \
      maker/sysctl.c \
      maker/sysctlbyname.c \
      maker/sysinfo.c \
      maker/syslog.c \
      maker/timegm.c \
      maker/ualarm.c \
      maker/unaligned.c \
      maker/uname.c \
      maker/unsetenv.c \
      maker/unsetenv_.c \
      maker/usleep.c \
      maker/utimes.c \
      maker/vfork.c \
      maker/wait3.c \
      maker/waitpid.c \
      maker/yp_match.c \
      maker/_-fcloseFILE.c \
      maker/_-fcloseFILE2.c \
      maker/_-fcntl.c \
      maker/_-fgetpos.c \
      maker/_-forkpty.c \
      maker/_-fseeko.c \
      maker/_-getrusage.c \
      maker/_-mkfifo.c \
      maker/_-mutex.c \
      maker/_-poll.c \
      maker/_-poll1.c \
      maker/_-poll2.c \
      maker/_-pthread_create.c \
      maker/_-ptrace.c \
      maker/_-recv.c \
      maker/_-regex.c \
      maker/_-select.c \
      maker/_-setferror.c \
      maker/_-sgTTy.c \
      maker/_-statvfs.c \
      maker/_-strcasestr.c \
      maker/_-sysconf.c \
      maker/_-sysconf2.c \
      maker/_-sysinfo.c \
      maker/_-system.c \
      maker/_spawnvp.c \
      maker/__alloca.c \
      maker/__fchmod.c \
      maker/__fchown.c \
      maker/__flock.c \
      maker/__fork.c \
      maker/__forkpty.c \
      maker/__futimes.c \
      maker/__gethostbyname2.c \
      maker/__getrlimit.c \
      maker/__getwinsize.c \
      maker/__link.c \
      maker/__lstat.c \
      maker/__lwp_create.c \
      maker/__malloc_size.c \
      maker/__opendir.c \
      maker/__pthread_create.c \
      maker/__pthread_kill.c \
      maker/__ptrace.c \
      maker/__scandir.c \
      maker/__setproctitle.c \
      maker/__sigaction.c \
      maker/__spawnvp.c \
      maker/__statvfs.c \
      maker/__symlink.c \
      maker/__syscall.c \
      maker/__sysconf.c \
      maker/__sysctl.c \
      maker/__sysinfo.c \
      maker/__syslog.c \
      maker/__system.c \
      maker/__tcsetattr.c \
      maker/__ualarm.c \
      maker/__uname.c \
      maker/__usleep.c \
      maker/__utimes.c \
      maker/___beginthread.c \
      maker/___lwp_create.c \
      maker/___spawnvp.c \
      mimekit/gendom.c \
      mimekit/mime.c \
      mimekit/mimecodes.c \
      mimekit/mimeconv.c \
      mimekit/mimehead.c \
      mimekit/mimeh_ovw.c \
      mimekit/mimemain.c \
      mimekit/noxlib.c \
      mimekit/pgp.c \
      mimekit/rfc822.c \
      mimekit/str_codes.c \
      pds/md5/md5c.c \
      pds/md5/md5cb.c \
      pds/md5/md5lib.c \
      pds/md5/md5main.c \
      pds/md5/mddriver.c \
      pds/regex/engine.c \
      pds/regex/regcomp.c \
      pds/regex/regdummy.c \
      pds/regex/regerror.c \
      pds/regex/regexec.c \
      pds/regex/regfree.c \
      rary/asock.c \
      rary/bsort.c \
      rary/ccx.c \
      rary/ccxmain.c \
      rary/cfilib.c \
      rary/cksum.c \
      rary/codec.c \
      rary/codeconv.c \
      rary/credhy.c \
      rary/dglibs.c \
      rary/file.c \
      rary/Finish.c \
      rary/forkspawn.c \
      rary/fpoll.c \
      rary/fpolls.c \
      rary/frelay.c \
      rary/fstat.c \
      rary/hash.c \
      rary/hostaddr.c \
      rary/html.c \
      rary/IsSolaris.c \
      rary/JIS.c \
      rary/libpam.c \
      rary/lock.c \
      rary/lsock.c \
      rary/modfmt.c \
      rary/nbio.c \
      rary/netsh.c \
      rary/pam.c \
      rary/passwd.c \
      rary/pelcgb.c \
      rary/pilsner.c \
      rary/pstitle.c \
      rary/randstack.c \
      rary/rawcopy.c \
      rary/readycc.c \
      rary/sched.c \
      rary/schedmain.c \
      rary/sed.c \
      rary/setutimes.c \
      rary/signal.c \
      rary/SLL.c \
      rary/socks5.c \
      rary/Strftime.c \
      rary/strid.c \
      rary/String.c \
      rary/str_stdio.c \
      rary/syslog.c \
      rary/tar.c \
      rary/Thread.c \
      rary/Timeofday.c \
      rary/timer.c \
      rary/TLEX.c \
      rary/unix.c \
      rary/urlesc.c \
      rary/uu.c \
      rary/vsaddr.c \
      rary/wince.c \
      rary/windows.c \
      rary/windows0.c \
      rary/winmisc.c \
      rary/winmo.c \
      rary/winnat.c \
      rary/winsspi.c \
      rary/ystring.c \
      resolvy/dnsnode.c \
      resolvy/hostent.c \
      resolvy/ntod.c \
      resolvy/rescache.c \
      resolvy/resconf.c \
      resolvy/reshost.c \
      resolvy/resmain.c \
      resolvy/resolv.c \
      subin/dgbind.c \
      subin/dgchroot.c \
      subin/dgcpnod.c \
      subin/dgdate.c \
      subin/dgforkpty.c \
      subin/dgpam.c \
      subin/dgsetlogin.c \
      subin/dgxauth.c \
      include/mkcpp.c \
  #   include/typedefs.c \
      src/abort.c \
      src/access.c \
      src/admin.c \
      src/alias.c \
      src/bcounter.c \
      src/builtin.c \
      src/cache.c \
      src/caps.c \
      src/ccache.c \
      src/cgi.c \
      src/commands.c \
      src/cond.c \
      src/conf.c \
      src/coupler.c \
      src/croncom.c \
      src/cuseeme.c \
      src/db.c \
      src/ddi.c \
      src/delegated.c \
      src/dgauth.c \
      src/dget.c \
      src/dgsign.c \
      src/distrib.c \
      src/domain.c \
      src/dtot.c \
      src/editconf.c \
      src/embed.c \
      src/enews.c \
      src/env.c \
      src/filetype.c \
      src/filter.c \
      src/form2conf.c \
      src/ftp.c \
      src/ftpgw.c \
      src/gacl.c \
      src/gopher.c \
      src/hostlist.c \
      src/htaccept.c \
      src/htccx.c \
      src/htfilter.c \
      src/htmlgen.c \
      src/htswitch.c \
      src/http.c \
      src/httpd.c \
      src/httphead.c \
      src/httplog.c \
      src/httpx.c \
      src/icap.c \
      src/icp.c \
      src/ident.c \
      src/imap.c \
      src/inetd.c \
      src/inets.c \
      src/inets_lib.c \
      src/iotimeout.c \
      src/ipno.c \
      src/ldap.c \
      src/log.c \
      src/lpr.c \
      src/master.c \
      src/misc.c \
      src/mkmkmk.c \
      src/mount.c \
      src/msg.c \
      src/nntp.c \
      src/nntpgw.c \
      src/nntplist.c \
      src/notify.c \
      src/param.c \
      src/pop.c \
      src/process.c \
      src/qstest.c \
      src/remote.c \
      src/rident.c \
      src/script.c \
      src/service.c \
      src/sftp.c \
      src/shio.c \
      src/shutter.c \
      src/smtp.c \
      src/smtpgate.c \
      src/smtp_lib.c \
      src/socks.c \
      src/socks4.c \
      src/sox.c \
      src/spinach.c \
      src/ssi.c \
      src/stls.c \
      src/sudo.c \
      src/svconf.c \
      src/svport.c \
      src/svstat.c \
      src/syslog.c \
      src/tcprelay.c \
      src/telnet.c \
      src/textconv.c \
      src/thmain.c \
      src/thruwayd.c \
      src/tsp.c \
      src/udprelay.c \
      src/uns.c \
      src/url.c \
      src/urlfind.c \
      src/utmpident.c \
      src/vaddr.c \
      src/version.c \
      src/vsap.c \
      src/wais.c \
      src/whois.c \
      src/X.c \
      src/xferlog.c \
      src/xflash.c \
      src/yshell.c \
      src/delegate.c \
      putsigned.c \
      srcsign.c \
      src-srcsign.c \
      mkmkmk.c 
  
  LOCAL_CFLAGS := -D_FILE_OFFSET_BITS=64 -Doff64_t=_off64_t -DUSE_IPv6 -DHAVE_PTHREADS -DBISTSPEED
  
  LOCAL_LDLIBS := -lz -llog
  
  include $(BUILD_EXECUTABLE)
  </code></pre>