LINUX.ORG.RU

Не компилируется qtd

 , , qtd


0

1

Здравствуйте! Не получается скомпилировать qtd. Следующая ошибка при компиляции:

CMake Error at cmake/FindD.cmake:41 (message): D compiler is not found Call Stack (most recent call first): CMakeLists.txt:65 (FIND_PACKAGE)

-- Configuring incomplete, errors occurred!

Установлена OpenSuse 12.1 и dmd 2.059. Заранее благодарю.

А как называется бинарник компилятора? Попробуй cmake -DDC=полный путь к компилятору

unC0Rr ★★★★★
()
Ответ на: комментарий от unC0Rr

компилятор от Digital Mars. Называется он dmd. Спасибо попробую.

sargis286
() автор топика
Ответ на: комментарий от unC0Rr

Попробовал. Не сработало:( Все та же ошибка

sargis286
() автор топика
Ответ на: комментарий от Begemoth

Посмотрел. Нашел следующее: find_program(DC NAMES dmd ldc gdmd).

sargis286
() автор топика
Ответ на: комментарий от Begemoth

Я вроде как добавил в PATH путь к dmd следующим образом export PATH=$PATH:/usr/bin/dmd. Может что то не так сделал?

sargis286
() автор топика
Ответ на: комментарий от unC0Rr
DMD64 D Compiler v2.059
Copyright (c) 1999-2012 by Digital Mars written by Walter Bright
Documentation: http://www.dlang.org/index.html
Usage:
  dmd files.d ... { -switch }

  files.d        D source files
  @cmdfile       read arguments from cmdfile
  -c             do not link
  -cov           do code coverage analysis
  -D             generate documentation
  -Dddocdir      write documentation file to docdir directory
  -Dffilename    write documentation file to filename
  -d             allow deprecated features
  -debug         compile in debug code
  -debug=level   compile in debug code <= level
  -debug=ident   compile in debug code identified by ident
  -debuglib=name    set symbolic debug library to name
  -defaultlib=name  set default library to name
  -deps=filename write module dependencies to filename
  -fPIC          generate position independent code
  -g             add symbolic debug info
  -gc            add symbolic debug info, pretend to be C
  -gs            always emit stack frame
  -H             generate 'header' file
  -Hddirectory   write 'header' file to directory
  -Hffilename    write 'header' file to filename
  --help         print help
  -Ipath         where to look for imports
  -ignore        ignore unsupported pragmas
  -inline        do function inlining
  -Jpath         where to look for string imports
  -Llinkerflag   pass linkerflag to link
  -lib           generate library rather than object files
  -m32           generate 32 bit code
  -m64           generate 64 bit code
  -man           open web browser on manual page
  -map           generate linker .map file
  -noboundscheck turns off array bounds checking for all functions
  -nofloat       do not emit reference to floating point
  -O             optimize
  -o-            do not write object file
  -odobjdir      write object & library files to directory objdir
  -offilename    name output file to filename
  -op            do not strip paths from source file
  -profile       profile runtime performance of generated code
  -property      enforce property syntax
  -quiet         suppress unnecessary messages
  -release       compile release version
  -run srcfile args...   run resulting program, passing args
  -shared        generate shared library
  -unittest      compile in unit tests
  -v             verbose
  -version=level compile in version code >= level
  -version=ident compile in version code identified by ident
  -vtls          list all variables going into thread local storage
  -w             enable warnings
  -wi            enable informational warnings
  -X             generate JSON file
  -Xffilename    write JSON file to filename.
sargis286
() автор топика
Ответ на: комментарий от sargis286

Ага, а в FindD.cmake такая штука:

string(REGEX MATCH "(Digital Mars|DMD32) D Compiler v[0-9]\\.[0-9]+" dmd_version "${d_output}")

Т.е. он не понимает DMD64. Вывод: или программа в принципе не поддерживает DMD64, либо можно попробовать изменить регэксп, чтобы подходил под вывод компилятора, и посмотреть, как оно далше пойдёт.

unC0Rr ★★★★★
()
Ответ на: комментарий от sargis286

В файле cmake/FindD.cmakeсправь строку 13 с

string(REGEX MATCH "(Digital Mars|DMD32) D Compiler v[0-9]\\.[0-9]+" dmd_version "${d_output}")

на

string(REGEX MATCH "(Digital Mars|DMD32|DMD64) D Compiler v[0-9]\\.[0-9]+" dmd_version "${d_output}")
Begemoth ★★★★★
()
Ответ на: комментарий от unC0Rr

Спасибо. Сработало. просто поменял DMD32 на DMD64.

sargis286
() автор топика
Ответ на: комментарий от sargis286

As of DMD 2.053, QtD is fully usable with vanilla DMD

а ты пробовал DMD 2.053? более ранний, ведь D 2.x это сырой язык, они наверняка что-то поломали и ты не соберешь на версии 2.059 - есть такая вероятность - попробуй старую версию, а вдруг?

I-Love-Microsoft ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.