Как вы компилируете libtasn1 с Visual Studio?

0

Я новый пользователь libtasn1 (пытается проверить эту библиотеку снова google protobuf).... на самом деле пытается стать новым пользователем....

Я не могу сделать эту библиотеку компиляцией под Windows (используя Visual Studio 2010).

Загрузила последнюю версию (4.2) отсюда: http://ftp.gnu.org/gnu/libtasn1/ Затем я запустил configure (мне пришлось сначала установить Cygwin, чтобы sh.exe, ar.exe....) из командной строки Visual Studio 2010. Это, по-видимому, работало и выводилось:

  version:          4.2 shared 9:2:3
  Host type:        i686-pc-cygwin
  Install prefix:   /usr/local
  Compiler:         gcc -std=gnu99
  Warning flags:    errors:  warnings:
  Library types:    Shared=yes, Static=yes
  Valgrind:
  Version script:   yes

И теперь я не могу продолжать строить. Вот что я пробовал:

Открыт libtasn1.sln, указанный в zip. Первая ошибка сообщила, что config.h не найден (+ другой файл заголовка). После обновления include path у меня были более значимые ошибки, такие как C2054, inline static в нескольких командах заголовков при компиляции ASN1.c (который является C и inline static недействителен в C....).

Я отказался здесь и попытался скомпилировать непосредственно из командной строки Visual, набрав "nmake". Он был коротким, сразу получил ошибку:

Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. Tous droits réservés.

makefile(269) : fatal error U1001: erreur de syntaxe : caractère non conforme '{' dans la macro
Stop.

Наконец, я попытался скомпилировать MinGW (используя mingw32-make.exe). То же самое, сразу же получил ошибку:

process_begin: CreateProcess(NULL, /usr/bin/sed -n s/^\(sc_[a-zA-Z0-9_-]*\):.*/\
1/p ./maint.mk ./cfg.mk, ...) failed.
'test' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
make  all-recursive
process_begin: CreateProcess(NULL, make all-recursive, ...) failed.
make (e=2): Le fichier spécifié est introuvable.
Makefile:928: recipe for target 'all' failed
mingw32-make.exe: *** [all] Error 2

На веб-сайте libtasn1 говорится:

Код должен работать на всех Unix-подобных операционных системах и Windows.

Хорошо, но как его построить? Я не мог найти какую-либо информацию на веб-сайте или в файле INSTALL...

Теги:
visual-studio-2010
asn.1
compilation

2 ответа

0

Вы пробовали файл.sln в подкаталоге Windows?

Это, очевидно, работало

Ключевое слово здесь "очевидно". При запуске configure он исследует среду сборки и создает make файл, который подходит именно для этой среды. Поскольку вы запускали configure с помощью Cygwin sh.exe, он создал make файл для среды Cygwin (см. "Тип хоста" и "Компилятор: значения"). Поэтому, даже если configure создал отсутствующий config.h, контент подходит для Cygwin с GCC, а не с Windows с MSVC.

configure создает make файлы, которые GNU make и многие другие программы Unix-y make могут понять. Microsoft nmake (когда я в последний раз смотрел на него) понимал гораздо более ограниченный и несовместимый язык. Вы не можете использовать make файл, созданный configure с помощью nmake.

Для MinGW вы пытались использовать windows/libtasn14win.mk?

Примечание: на FTP-сайте GNU для libtasn1, последние двоичные файлы Windows для версии 3.3 :(

Вы можете захотеть, как в списке рассылки help-libtasn1, для подсказок о том, как создавать двоичные файлы Windows. Понятно, что сборка Windows получает меньше внимания, чем остальная часть libtasn1.

  • 0
    Попытка собрать windows / libtasn14win.mk не помогла ....
0

Я запускаю ubuntu linux 14.04

Я использовал вашу ссылку для загрузки новейшего... gz файла

Я использовал утилиту для распаковки файла в файл ../Downloads/libtasn1/ который сгенерировал множество подкаталогов и файлов

Я открыл нормальное командное окно cd'd в главном каталоге:../Downloads/libtasn1/libtasn1-4.2, тогда я прочитал несколько файлов в этом каталоге. Один из этих файлов указал, что я должен ввести: ./configure && make && make install

Я делал это по указанию. результатом были определенные защищенные каталоги, которые не позволяли бы вставлять новые файлы

Я открыл корневое командное окно cd'd в главном каталоге: ../Downloads/libtasn1/libtasn1-4.2 затем ввел: ./configure && make && make install

через несколько минут все было успешно выполнено

  • 0
    Вы пробовали это под Windows или Ubuntu?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню