我正在尝试创建。 /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