我想使用'environ'變量,但它一直給我一個錯誤。這似乎是一個生成文件/編譯錯誤,我似乎無法修復它。我已經搜索了答案,但我仍然迷失。對'environ'的未定義引用?
這裏是我的C文件:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <dirent.h>
#include "cmd.h"
int cmdExec() {
...
extern char **environ;
...
printf("Enter a command\n");
//gets (input);
scanf("%s%*[^\n]", input);
if (...) {
...
}
else if (strcmp(input, "environ") == 0) {
int i;
for (i = 0; environ[i] != NULL; i++) {
printf("%s\n", environ[i]);
}
exit(0);
else
...
return 0;
}
,這裏是生成文件:
CC = gcc
CFLAGS = -c
CFLAGS-y = -std=c99
all: cmd
cmd.o: cmd.c cmd.h
$(CC) $(CFLAGS) $(CFLAGS-y) cmd.c
cmd.exe: cmd.o
$(CC) -o cmd.exe cmd.o
clean:
rm -rf *.o cmd.exe a.out
這是輸出:
make all
gcc -c -std=c99 cmd.c
gcc cmd.o -o cmd
cmd.o:cmd.c:(.text+0x105): undefined reference to `environ'
cmd.o:cmd.c:(.text+0x127): undefined reference to `environ'
collect2: ld returned 1 exit status
make: *** [cmd] Error 1
從我這個搜索交易與鏈接庫,但我不知道如何適用於我的具體情況。如果有人能幫我一把,我會很感激。
你在什麼系統上?一個簡單的「hello,world」程序是否編譯,鏈接和正確執行? –
我在Windows 7上,是的,一切正常,直到我試圖使用'環境'。 – blutuu
你使用的是什麼gcc? Cygwin的? MinGW的?還有別的嗎? –