РЕДАКТИРОВАНИЕ: не используйте vc80 / Visual Studio 2005, но Visual Studio 2008 / vc90 версии библиотеки CGAL (возможно от здесь ).
Инструменты Компоновщика, Предупреждающие LNK4099:
Вы могли также скомпилировать с/Z7, таким образом, pdb не должен использоваться, или удалите опцию компоновщика ОТЛАДКИ/, если у Вас нет .pdb файлов для объектов, Вы связываетесь.
Я думаю, что :
- это обычная уловка, которую люди используют, если переменная пуста.
Если она пуста, то оболочка будет иметь это:
if [ != 0,0 ]
что было бы синтаксической ошибкой. Ввод :
впереди означает, что, если переменная пуста, оболочка имеет это:
if [ : != :0,0 ]
, что не является синтаксической ошибкой и (правильно) сообщит ложь.
Команда [
- это просто псевдоним команды test
, закрывающая квадратная скобка просто является синтаксическим сахаром (команда [
игнорирует последний аргумент, если это закрывающая скобка), поэтому строка фактически читает
if test :$RESULT != :0,0
. Сравнивается, равна ли строка : $ RESULT
строке : 0,0
. Двоеточие добавляется в начале в случае, если переменная $ RESULT
пуста. Строка выглядела бы следующим образом, если бы двоеточие было опущено и $ RESULT
было пустой строкой:
if test != 0,0
Это привело бы к ошибке, поскольку test
ожидает аргумент перед ]! =
. Альтернативой может быть использование кавычек, чтобы указать, что существует аргумент, представляющий собой пустую строку:
if test "$RESULT" != 0,0
# Will become
if test "" != 0,0
Однако опубликованный вами вариант более переносим.
Иногда вы увидите x
, используемое в способ использования двоеточия в вашем примере.
Предпочтительный способ выполнить этот тип теста в Bash - использовать двойную квадратную скобку:
if [[ $RESULT != 0,0 ]]
Форма двойной скобки обеспечивает большую гибкость, улучшенную читаемость, снижает потребность в экранирование и цитирование и еще несколько функций. См. на этой странице для получения дополнительной информации.
Если вы хотите проверить числовые значения, а не строки или файлы, используйте двойные скобки:
if (( 3 + 4 > 6 ))