ОС, обнаруживающая make-файл

Я уже получил это.

Для других, вот решение. Просто добавьте код ниже.

Option Explicit
Private WithEvents oItem As MailItem
Private Sub oItem_Reply(ByVal Response As Object, Cancel As Boolean)
MsgBox (oItem.Parent.store)

Это работает! :)

237
задан samoz 6 April 2016 в 09:39
поделиться

4 ответа

Команда uname (http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/uname.1.html) без параметров должна сказать Вам имя операционной системы. Я использовал бы это, затем сделать условные выражения на основе возвращаемого значения.

Пример

UNAME := $(shell uname)

ifeq ($(UNAME), Linux)
# do something Linux-y
endif
ifeq ($(UNAME), Solaris)
# do something Solaris-y
endif
117
ответ дан dbrown0708 23 November 2019 в 03:24
поделиться

Это - задание, которое automake/autoconf GNU разработаны для решения. Вы могли бы хотеть исследовать их.

Кроме того, можно установить переменные среды на различных платформах и сделать Вас условным выражением Make-файла против них.

7
ответ дан Douglas Leeder 23 November 2019 в 03:24
поделиться

git makefile содержит множество примеров того, как обойтись без autoconf / automake, но все еще работает на множестве Unixy платформ.

16
ответ дан JesperE 23 November 2019 в 03:24
поделиться

Примечание. что файлы Makefile очень чувствительны к интервалам. Вот пример Makefile, который запускает дополнительную команду в OS X и работает в OS X и Linux. В целом, однако, autoconf / automake - это способ сделать что-нибудь нетривиальное.

UNAME := $(shell uname -s)
CPP = g++
CPPFLAGS = -pthread -ansi -Wall -Werror -pedantic -O0 -g3 -I /nexopia/include
LDFLAGS = -pthread -L/nexopia/lib -lboost_system

HEADERS = data_structures.h http_client.h load.h lock.h search.h server.h thread.h utility.h
OBJECTS = http_client.o load.o lock.o search.o server.o thread.o utility.o vor.o

all: vor

clean:
    rm -f $(OBJECTS) vor

vor: $(OBJECTS)
    $(CPP) $(LDFLAGS) -o vor $(OBJECTS)
ifeq ($(UNAME),Darwin)
    # Set the Boost library location
    install_name_tool -change libboost_system.dylib /nexopia/lib/libboost_system.dylib vor
endif

%.o: %.cpp $(HEADERS) Makefile
    $(CPP) $(CPPFLAGS) -c $
3
ответ дан 23 November 2019 в 03:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: