Я прочитал все остальные посты с таким же заголовком, но я не на встроенной системе, и у меня правильно установлены мои включения и переменная окружения. Работая на RHEL 7.5, моя программа с getenv не работала, поэтому я создал приложение C с простой функциональностью печати переменной среды JAVA_HOME. Он возвращает null из программы на C, но переменная окружения установлена (была установлена постоянно) и отлично читает в моем терминале замазки. Это именно то, что я бегу (только сокращенные пути):
C:
#include <stdio.h>
#include <stdlib.h>
int main () {
printf("JAVA HOME : %s\n", getenv("JAVA_HOME"));
return(0);
}
makefile:
CC=gcc
CFLAGS=-c -Wall -I/path/to/includes
BIN=/path/to/bin
INCLUDE=/path/to/includes
default : $(BIN)/testEnv
testEnv.o : testEnv.c
$(CC) $(CFLAGS) testEnv.c
#------------ Make testEnv-------------------
$(BIN)/testEnv: testEnv.o
$(CC) -o $@ \
testEnv.o
Терминал:
>bin/testEnv
JAVA HOME : (null)
>echo $JAVA_HOME
/path/to/java
У кого-нибудь есть что-нибудь новое, что я должен проверить или узнать, в чем проблема? Спасибо.