Установка GCC 4.2 как компилятор по умолчанию на Mac OS X Leopard

Можно найти легче циклично выполниться по массиву и создать новый массив из объектов, которые Вы хотите удержаться от массива, чем путем попытки циклично выполнить и соединить, как был предложен, начиная с изменения длины массива, в то время как это циклично выполняется, может представить проблемы.

Вы могли сделать что-то вроде этого:

function removeFalsyElementsFromArray(someArray) {
    var newArray = [];
    for(var index = 0; index < someArray.length; index++) {
        if(someArray[index]) {
            newArray.push(someArray[index]);
        }
    }
    return newArray;
}

На самом деле вот более универсальное решение:

function removeElementsFromArray(someArray, filter) {
    var newArray = [];
    for(var index = 0; index < someArray.length; index++) {
        if(filter(someArray[index]) == false) {
            newArray.push(someArray[index]);
        }
    }
    return newArray;
}

// then provide one or more filter functions that will 
// filter out the elements based on some condition:
function isNullOrUndefined(item) {
    return (item == null || typeof(item) == "undefined");
}

// then call the function like this:
var myArray = [1,2,,3,,3,,,,,,4,,4,,5,,6,,,,];
var results = removeElementsFromArray(myArray, isNullOrUndefined);

// results == [1,2,3,3,4,4,5,6]

Вы получаете идею - у Вас могли тогда быть другие типы функций фильтра. Вероятно, больше, чем Вы нужно, но я чувствовал себя щедрым...;)

24
задан Cromulent 22 July 2009 в 13:44
поделиться

3 ответа

Использование командной строки для всех сценариев настройки:

  cd /usr/bin
  rm cc gcc c++ g++
  ln -s gcc-4.2 cc
  ln -s gcc-4.2 gcc
  ln -s c++-4.2 c++
  ln -s g++-4.2 g++

Сделайте запись о текущих объектах связи, чтобы вы могли восстановить их, если хотите.

Если вы не хотите изменять общесистемные настройки,

19
ответ дан 28 November 2019 в 22:47
поделиться

В окне Project или Target Info установите сборку установка «Версия компилятора C / C ++» (GCC_VERSION).

Или в окне целевой информации вы можете изменить «Правило системы C» на вашу любимую версию GCC.

Обновление: Что касается командной строки, я бы оставил Leopard решение о том, какой компилятор должен быть по умолчанию. Если вы хотите использовать другой компилятор с такими инструментами, как Autotools configure, вам лучше определить переменную CC.

CC=gcc-4.2 ./configure

или

export CC=gcc-4.2
18
ответ дан 28 November 2019 в 22:47
поделиться

Поскольку ни Apple, ни Darwin Ports не имеют программы gcc_select для изменения версии по умолчанию системного компилятора (как существует в GNU / Linux), Я хотел бы быть в безопасности с XCode (и остальной частью системы) и рекомендовал бы оставить символические ссылки как есть и вместо этого установить переменные среды, которые переопределяют, какую версию GCC использовать.

В моем. файл профиля у меня есть следующий

export CC=/usr/bin/gcc-4.2
export CPP=/usr/bin/cpp-4.2
export CXX=/usr/bin/g++-4.2 

И я успешно скомпилировал следующие библиотеки с GCC 4.2 из исходного кода.

  • OpenSSL
  • libjpeg
  • libpng
  • zlib
  • gst

Однако ... Я не удалось заставить Boost 1.39 подтвердить переменные среды, поэтому для компиляции Boost с GCC 4.2 мне нужно было изменить символические ссылки в / usr / bin /, чтобы они указывали на gcc v4.2

После долгой компиляции библиотек Boost с GCC 4.2 я восстановил символические ссылки на исходную версию системы gcc-4.0.

16
ответ дан 28 November 2019 в 22:47
поделиться