我想使用 .cpp 源文件中的一些函数,这些函数在我的 .cpp 源文件中有一个 main 函数。 (我正在使用 make 和 gcc 进行构建。)
这是我的 Makefile 中的规则:
$(CXX) $(CXXFLAGS) $(INCLUDES) $(SRCS) $(LIBS) -o $@
这是输出(更改了一些名称以防止分心):
$ make foo
g++ -g -Wall -m32 -Ilinux/include foo.cpp bar.cpp -o foo
/tmp/ccJvCgT3.o: In function `main':
/home/dspitzer/stuff/bar.cpp:758: multiple definition of `main'
/tmp/ccUBab2r.o:/home/dspitzer/stuff/foo.cpp:68: first defined here
collect2: ld returned 1 exit status
make: *** [foo] Error 1
如何向 gcc 表明我想使用 foo.cpp 中的 main?
更新: 我应该补充说“bar.cpp”是“其他人的”代码,并且有它自己的 main 原因。 (听起来我应该与其他人合作,让他将共享功能拆分到一个单独的文件中。)
最佳答案
您可以做的是将每个 main() 函数包装在一个 #ifdef
block 中,然后使用命令行定义将导致使用相关 main 的符号。
#ifdef USE_MAIN1
int main(void)
{
}
#endif
然后确保在 gcc 命令行中添加类似这样的内容
-DUSE_MAIN1
或者只是重构您的代码!
关于c++ - 如何从同样具有 'main' 的 .cpp 源文件中链接函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3080156/