g ++ включают весь/usr/include рекурсивно

CDATA не является частью логической структуры XML, это просто способ указать текст, содержащий специальные символы, - чтобы предотвратить интерпретацию такого текста как разметку XML.

Просто определите родительский элемент CDATA как type: string, вот и все. Нет необходимости указывать какие-либо маркеры CDATA. При необходимости сервер и клиенты могут отправлять текст элемента XML в виде CDATA.

Например,


  

определяется как:

swagger: "2.0"
...

definitions:
  root:
    type: object
    properties:
      elem:
        type: string

11
задан James McLaughlin 28 December 2012 в 19:27
поделиться

3 ответа

В этом случае корректная вещь сделать состоит в том, чтобы использовать pkg-config в Вашем Makefile или buildscripts:

# Makefile
ifeq ($(shell pkg-config --modversion gtkmm-2.4),)
  $(error Package gtkmm-2.4 needed to compile)
endif

CXXFLAGS += `pkg-config --cflags gtkmm-2.4`
LDLIBS += `pkg-config --libs gtkmm-2.4`

BINS = program
program_OBJS = a.o b.o c.o

all: $(BINS)

program: $(program_OBJS)
        $(CXX) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@

# this part is actually optional, since it's covered by gmake's implicit rules
%.o: %.cc
        $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $< -o $@

Если Вы отсутствуете gtkmm-2.4, это произведет

$ make
Package gtkmm-2.4 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtkmm-2.4.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtkmm-2.4' found
Makefile:3: *** Package gtkmm-2.4 needed to compile.  Stop.

Иначе Вы получите все соответствующие пути и библиотеки, впитанные для Вас, не указывая их всех вручную. (Проверьте вывод pkg-config --cflags --libs gtkmm-2.4: это - намного больше, чем Вы хотите ввести вручную, когда-нибудь.)

17
ответ дан 3 December 2019 в 05:59
поделиться

Я предполагаю, что Вы не используете make-файл? Единственная вещь, которая могла быть раздражающей, должна ввести долгую-I опцию каждый раз, когда Вы компилируете свою программу. Make-файл делает это намного легче.

Например, Вы могли изменить привет мировой make-файл от Википедии до чего-то как следующее:

INC=-I/usr/include/gtkmm-2.4/

helloworld: helloworld.o
    g++ -o $@ $<

helloworld.o: helloworld.c
    g++ $(INC) -c -o $@ $<

.PHONY: clean

clean:
    rm -f helloworld helloworld.o
2
ответ дан 3 December 2019 в 05:59
поделиться

Вы не можете. Смысл включает пути, так, можно привередливо выбрать то, что Вы хотите и что версии.

То, что Вы могли сделать..

#include <gtkmm-2.4/gtkmm.h>

Который достиг бы того же эффекта.

1
ответ дан 3 December 2019 в 05:59
поделиться
Другие вопросы по тегам:

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