繁体   English   中英

无法将参数传递给gcc

[英]cannot pass arguments to gcc

我在gcc编程中很新鲜,我想用我的编译器编译一个.c文件。 但是我不知道怎么办? 在这种情况下,我的“主要”部分如下所示:

int main(int argc, char *argv[]){

int i,j,k;

int epsilon,bestepsilon;

float soundness=0,bestsoundness=0;

if (argc!=3) {

    printf("[usage] : %s <datasetname> <bestepsilon> \n", argv[0]);

    exit(1);

}

readPoints(argv[1]);

readDatainfo(argv[1]);
if (bestepsilon==0) {

for(epsilon=INITIALEPSILON; epsilon<=FINALEPSILON; epsilon++) { ...

但是“ INITIALEPSILON”和“ FINALEPSILON”未在此程序中定义,我应该从其他文件传递它们。

请一些身体帮助我。

我有一个如下的“ makefile”:

DEFINE1=-DMINDIM=2 -DMAXDIM=20 -DMEANDIM=10 -DNCLUSTER=5 -DNPOINTS=100000 -DMINSIZE=5000
DEFINE2=-DFOUTLIER=0.1 -DSPREADPARAM=2 -DSCALEMAX=2 -DNSHARE=2 
com.o:../src/com.c
$(CC) -c ../src/com.c
linpack.o:../src/linpack.c
$(CC) -c ../src/linpack.c
randlib.o:../src/randlib.c
$(CC) -c ../src/randlib.c
gendata:gendata.c ../src/com.o ../src/linpack.o ../src/randlib.o
$(CC) $(DEFINE1) $(DEFINE2) -g -o gendata gendata.c ../src/com.o ../src/linpack.o ../src/randlib.o -lm

这使得生成数据集的gendata。

之后,我需要上面描述的findit.c。 想要从makefile传递诸如mindim之类的参数以进行findit编译。

正如@Jonathan Leffler所提到的

#include <string.h>
#include <stdio.h>

int  main(int argc, char *argv[])
{
   printf("%d   %d\n",INITIALEPSILON,FINALEPSILON);
}

$ gcc -DINITIALEPSILON=100 -DFINALEPSILON=500 test.c -o test

$ ./test
100 500

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM