Как скомпилировать Каир для Visual C++ 2008 (Специальный выпуск)

Я бы предложил сначала минимизировать что-то вроде YUI Compressor, а затем преобразовать всю строку и числа в значения HEX, используя что-то вроде http://www.javascriptobfuscator.com/

При этом код будет практически недоступен для понимания, и я думаю, что на этом этапе потребуется больше времени, чтобы Хакер мог повторно ввести ваш код, чем на самом деле, если он переписал с нуля. Переписывание и клонирование - это то, что вы не можете остановить. Ведь мы свободные люди!

11
задан akauppi 18 September 2008 в 19:37
поделиться

5 ответов

Вот инструкции для создания Cairo/Cairomm с Visual C++.

Требуемый:

  • SP1 Экспресса Visual C++ 2008 года (теперь включает SDK),
  • MSYS 1.0

Для использования VC ++ инструменты командной строки пакетный файл 'vcvars32.bat' должен быть выполнен.

    C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vcvars32.bat

ZLib

Загрузите (и извлечение) zlib123.zip из http://www.zlib.net/

    cd zlib123
    nmake /f win32/Makefile.msc

    dir
        # zlib.lib is the static library
        #
        # zdll.lib is the import library for zlib1.dll
        # zlib1.dll is the shared library

libpng

Загрузите (и извлечение) lpng1231.zip из http://www.libpng.org/pub/png/libpng.html

VC ++ 9,0 компиляторов дают загрузки "этого, могли бы быть небезопасные" предупреждения. Проигнорируйте их; это - паника безопасности MS (код хорош).

    cd lpng1231\lpng1231        # for some reason this is two stories deep

    nmake /f ../../lpng1231.nmake ZLIB_PATH=../zlib123

    dir
        # libpng.lib is the static library
        #
        # dll is not being created

Pixman

Pixman является частью Каира, но отдельной загрузкой.

Загрузите (и извлечение) pixman-0.12.0.tar.gz из http://www.cairographics.org/releases/

Используйте MSYS для untar через 'tar-xvzf pixman*.tar.gz'

У и Pixman и Каира есть Make-файлы для компилятора командной строки Visual C++ (статья), но они используют make-файл Гну и подобные Unix инструменты (sed и т.д.). Это означает, что мы должны выполнить делание из MSYS.

Откройте командную строку с VC ++, инструменты командной строки включили (попытка 'статья/?'). Превратите ту командную строку в подсказку MSYS 'C:\MSYS\1.0\MSYS.BAT'.

НЕ используйте значок MSYS, потому что затем Ваша подсказка будет теперь знать о VC ++. Вы не можете выполнить .bat файлы от MSYS.

Попробуйте тот VC ++, инструменты работают отсюда: 'статья-?'

Попытка та Гну делает также работы: 'сделайте-v'.

Круто.

    cd     (use /d/... instead of D:)
    cd pixman-0.12.0/pixman
    make -f Makefile.win32

Это принимает значение по умолчанию к MMX и оптимизации SSE2, которая требует довольно нового x86 процессора (Pentium 4 или Pentium M или выше: http://fi.wikipedia.org/wiki/SSE2)

Существуют некоторые предупреждения, но это, кажется, успешно выполняется.

    ls release
        # pixman-1.lib  (static lib required by Cairo)

Останьтесь в VC ++ пряная подсказка MSYS для также Каира для компиляции.

Каир

Загрузите (и извлечение) Каир-1.6.4.tar.gz из http://www.cairographics.org/releases/

    cd 
    cd cairo-1.6.4

Make-файл win32 здесь почти хорош, но сделал, чтобы Pixman соединил каналом соединенный проводами.

Используйте измененный 'Make-файл-cairo.win32':

    make -f ../Makefile-cairo.win32 CFG=release \
            PIXMAN_PATH=../../pixman-0.12.0 \
            LIBPNG_PATH=../../lpng1231 \
            ZLIB_PATH=../../zlib123

(Запишите все на одной строке, игнорируя обратные косые черты),

Это не говорит "правила сделать 'src/cairo-features.h'. Используйте вручную подготовленный один (в Каире> 1.6.4 может быть 'src/cairo-features-win32.h', что можно просто переименовать):

    cp ../cairo-features.h src/

Повторите сделать команду (стрелка помнит это).

    ls src/release
        #
        # cairo-static.lib

cairomm (C++ API)

Загрузите (и извлечение) cairomm-1.6.4.tar.gz из http://www.cairographics.org/releases/

Существует Проект Visual C++ 2005 года, который мы можем использовать (через открытый и обновление) на 2008.

    cairomm-1.6.4\MSCV_Net2005\cairomm\cairomm.vcproj

Изменения, которые должны быть сделаны:

  • Измените активную конфигурацию для "Выпущения"

  • Свойства Cairomm-1.0 (с меню правой кнопки)

        C++/General/Additional Include Directories: 
            ..\..\..\cairo-1.6.4\src    (append to existing)

        Linker/General/Additional library directories:
            ..\..\..\cairo-1.6.4\src\release
            ..\..\..\lpng1231\lpng1231
            ..\..\..\zlib123

        Linker/Input/Additional dependencies:   
            cairo-static.lib libpng.lib zlib.lib msimg32.lib
  • Оптимизация: быстрый код FPU
            C++/Code generation/Floating point model
                Fast

Щелкните правой кнопкой по 'cairomm-1.0' и 'сборке'. Существуют некоторые предупреждения.

    dir cairomm-1.6.4\MSVC_Net2005\cairomm\Release
        #
        # cairomm-1.0.lib
        # cairomm-1.0.dll
        # cairomm.def
18
ответ дан 3 December 2019 в 04:15
поделиться

Сделал Вы проверяете здесь: http://cairographics.org/visualstudio/? Что Вы подразумеваете, что 'Это использует время выполнения MSCVRT, которое является несовместимым с Visual C++ 2005/2008'? Каковы точные проблемы, которые Вы имеете?

1
ответ дан 3 December 2019 в 04:15
поделиться

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

Но то, что я сделал, было прочитано config.h и другие файлы для системы сборки UNIX/GNU и записи мое собственное, которому удовлетворяют для MSVC, и затем, создают проект с соответствующими исходными файлами. Вероятно, требуется несколько часов в лучшем случае, чтобы сделать это, но когда Вы сделаны, это просто работает ;)

Править: Действительно посмотрите эту страницу, она имеет MSVC 2003 (7.1) проект для создания Каира: http://slinavlee.googlepages.com/

0
ответ дан 3 December 2019 в 04:15
поделиться

Набор инструментальных средств MSYS+gcc пользуется старой библиотекой времени выполнения MSVCRT (теперь встроенный в Windows), и Visual C++ 2005/2008 приносят свое собственное. Это - известное то, что код не должен зависеть от нескольких времени выполнения. Передающие вещи s.a. дескрипторы файлов, указатели памяти и т.д. будут затронуты и вызовут по-видимому случайные катастрофические отказы в таком сценарии.

Я не поставился этим. С другой стороны я больше не действительно нацелен на Windows, также. Но мне сказали достаточно, чтобы даже не попробовать решение.

То, что, возможно, работало, связывается, все зависимости статически в lib (скажите, Cairomm). Статичный освобождает, не имеют времени выполнения связанным с ними, не так ли? Но я не попробовал это. Я на самом деле заставил VC ++ здание всех компонентов работать, но потребовались дни.

Я не нашел URL, который Вы даете. Странный сам по себе; я смотрел 'везде'. С другой стороны это уже - для Visual Studio 2003.NET, таким образом, два поколения позади.

0
ответ дан 3 December 2019 в 04:15
поделиться

Похоже, что инструкции не работают с текущей версией imlib, интересно, стоит ли задавать этот вопрос повторно?

2
ответ дан 3 December 2019 в 04:15
поделиться
Другие вопросы по тегам:

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