我搜索并阅读了所有的GNU make手册...。但是我无法将一个开源项目纳入我的矿山。
你能帮助我吗?

一个简单的例子:
我想将coWPAtty包含到我的项目中,以检查所提供的.pcap文件是否具有有效的4向握手。
所以,我只需要用=> argc = 4来调用cowpatty main(); argv [] = {“ my_program”,“-r”,“ pcap_file.pcap”,“-c”}。但是..如果有2个函数main(),我该如何编译呢?
我尝试将cowpatty main()更改为cow_main(),并且可以工作,但是我想知道是否可以使用前驱语句或以某种方式保留所有源代码的方式来执行此操作。

我的Makefile是:

COW_SRC=./cow_src
COW_DEP:= `sed -ne 's/^PROGOBJ[^a-z0-9A-Z]*\(.*\)/\1/gp' < $(COW_SRC)/Makefile`

LDLIBS= -lmagic -lm -lcrypto -lpcap

crack_server: cow
    $(RM) $(COW_SRC)/genpmk.o
    $(CC) $(LDLIBS) -g -o tmp ./tmp.c $(COW_SRC)/*.o

cow:
    make -C $(COW_SRC) $(COW_DEP)

clean:
    for i in $(COW_DEP);\
        do $(RM) $(COW_SRC)/$$i;\
    done;


这是简单的tmp.c

#include <stdio.h>
#include <stdlib.h>
#include <magic.h>


int main(int argc, char *argv[])
{
    cow_main(argc,argv);
    return 0;
}

最佳答案

构建和安装coWPAtty之后,只需使用system从程序中调用它

int main(int argc, char *argv[])
{
    int status = system("cowpatty my_program -r pcap_file.pcap");
    return status;
}

关于c - 将开源项目纳入另一个,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9183571/

10-11 23:00
查看更多