我正在嘗試創建。 /configure
+ make
通過使用autotools
設置爲在以下結構中構建C代碼。 drive.c
使用功能mylib.c
主要的多重定義
[mylib]
+mylib.c
+mylib.h
[src]
+drive.c
更多細節在這裏。
[mylib.c]
#include <stdio.h>
#include "mylib.h"
int main(){
mylib();
return 0;
}
void
mylib(void)
{
printf ("Hello world! I AM mylib \n");
}
[mylib.h]
void mylib(void);
[drive.c]
#include <mylib.h>
int
main (int argc, char **argv)
{
mylib();
return 0;
}
其實我已經給main()
都mylib.c
和drive.c
。
如果我make
他們在CentOS過程noremally但完成如果我make
他們MINGW錯誤消息multiple definition of
main'`顯示
我怎麼能make
他們MINGW即使他們已經多次有main()
?
以下是自動工具的配置文件。
[confiugre.ac]
AC_PREREQ([2.69])
AC_INIT([libmylib], [1], [[email protected]])
AC_CONFIG_SRCDIR([mylib/mylib.c])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([foreign])
LT_INIT
AC_PROG_CC
AC_CONFIG_FILES([mylib/Makefile
src/Makefile
Makefile])
AC_OUTPUT
[Makefile.am]
SUBDIRS = mylib src
ACLOCAL_AMFLAGS = -I m4
bin_PROGRAMS = drive
drive_SOURCES = drive.c
LDADD = ../mylib/libmylib.la
AM_CPPFLAGS = -I../mylib
lib_LTLIBRARIES = libmylib.la
libmylib_la_SOURCES = mylib.c
include_HEADERS = mylib.h
有多個main()沒有任何意義。你想通過多重解決問題來解決什麼問題? – Lundin
如果有一些C代碼可能是我製作的或某人制作的共享庫。在第一個我從原始文件複製它,然後編輯它的源刪除主要避免多個主。 我想我可以簡化這個過程,如果我可以編譯多個main()。 還想到調試場景,對於某種類型的庫來說很容易進行微小的測試。如果它具有main(),我可以將它編譯爲可執行文件進行小測試。經過測試,我可以將它編譯爲共享庫。 – user1345414
如果我不能在CentOS上編譯,我沒有問過這個問題,我會放棄這個想法。但是我已經能夠在CentOS上的多個主內編譯。爲什麼我想知道如何在MINGW上編譯相同的方式。 – user1345414