Это не дает прямого ответа на вопрос, но может помочь другим, кто пытается построить scalaz3
с scala 2.10
.
Я построил ScalaZ3
с Scala 2.10.1
и Z3 4.3.0
по телефону Windows 7
. Я тестировал его с примером integer constraints
по адресу http://lara.epfl.ch/w/jniz3-scala-examples, и он отлично работает.
Строительство Z3
Z3 4.3.0
скачать на CodePlex не включает libZ3.lib
файл. Поэтому мне пришлось загрузить источник и создать его на моей машине. Процесс сборки довольно прост.
Строительство ScalaZ3
В настоящее время build.properties
имеет SBT версия 0.7.4
и SCALA версию 2.9.2
. Это строит отлично. (Я должен был сделать некоторые незначительные изменения в файл build.scala
. Изменение z3LibPath(z3VN).absolutePath
для z3LibPath(z3VN).absolutePath + "\\libz3.lib"
в gcc
задачи.)
Теперь, если я изменю SCALA версию 2.10.1
в build.properties
, я получаю сообщение об ошибке "Error compiling sbt component 'compiler-interface'"
о запуске SBT. Я понятия не имею, почему это происходит.
Затем я изменил версию sbt на 0.12.2
и версию scala до 2.10.1
и начал с нового источника. Я также добавил build.sbt
в корневую папку проекта, содержащую scalaVersion := "2.10.1"
. Это необходимо, так как в sbt 0.12.2
файл build.properties
предполагается использовать только для указания версии sbt
. Дополнительная информация о различиях версии sbt в (https://github.com/harrah/xsbt/wiki/Migrating-from-SBT-0.7.x-to-0.10.x).
Я получаю ошибку Z3Wrapper.java:27: cannot find symbol LibraryChecksum
. Это происходит потому, что файл LibraryChecksum.java
, который является supposted, который будет сгенерирован сборкой (project\build\build.scala
), не генерируется. Похоже, задача package
не выполняет задачи в (project\build\build.scala
). Задачи compute-checksum
, javah
и gcc
не выполняются. Это может происходить потому, что sbt 0.12.2
ожидает, что файл build.scala
будет находиться под папкой project
.
Затем я скопировал LibraryChecksum.java
, сгенерированный из предыдущей сборки, затем построит сборку. Сгенерированный файл jar не содержит scalaz3.dll
.
Затем я выполнил javah
и gcc
задания вручную. Команда для этих задач может быть скопирована из журнала успешной сборки с scala 2.9.2
(я внесла соответствующие изменения в команды для scala 2.10.1
). Здесь также я должен был внести некоторые изменения. Я должен был явно добавить полный путь к пути scala-library.jar
задачи javah
.
Затем я добавил lib-bin\scalaz3.dll
в файл jar, используя jar uf target\scala-2.10\scalaz3.jar lib-bin/scalaz3.dll
.
Обратите внимание, что, любезно предоставлено Этьеном Кнейсом, [ScalaZ3 теперь портировано до 2.10] (https://github.com/epfl-lara/ScalaZ3). – Philippe
@Philippe Спасибо. Я расскажу о своих выводах на платформе Windows, когда получаю время, чтобы протестировать этот выпуск. – dips