Ocaml gui приложения по виндовс
От: SkoAleVal  
Дата: 20.09.13 21:43
Оценка:
Здравствуйте нужна помощь знатаков Ocamla, как убрать консоль из приложений приложений типа

(*комманда сборки ocamlc -I +labltk labltk.cma gui.ml -o gui.exe *)

open Tk ;;

let top = openTk () ;;
Wm.title_set top "Application 1" ;;
Wm.geometry_set top "200x500";;

let blue = Button.create ~text:"Blue" top ;;
let red = Button.create ~text:"Red" top ;;
pack [blue ; red];;

let mylist = Listbox.create ~selectmode:`Multiple top
let _ = Listbox.insert
    ~index:`End
    ~texts:["Mozart";"Chopin";"Beethoven";"Verdi";"Bizet"]
    mylist ;;
pack [mylist];;

let _ = Printexc.print mainLoop ();;


пол дня убил на поиск в интернете
ocaml
Re: Ocaml gui приложения по виндовс
От: FR  
Дата: 21.09.13 13:34
Оценка: 51 (1)
Здравствуйте, SkoAleVal, Вы писали:

SAV>Здравствуйте нужна помощь знатаков Ocamla, как убрать консоль из приложений приложений типа


Командная строка должна быть такая:

ocamlc -custom -I +labltk labltk.cma gui.ml -o gui.exe -cclib "-subsystem windows"


При этом должен быть доступен соответствующий набор сишных компиляторов, например
если используешь инсталятор с ocaml.org должен быть установлен и cygwin.
Re[2]: Ocaml gui приложения по виндовс
От: SkoAleVal  
Дата: 21.09.13 16:30
Оценка:
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, SkoAleVal, Вы писали:


SAV>>Здравствуйте нужна помощь знатаков Ocamla, как убрать консоль из приложений приложений типа


FR>Командная строка должна быть такая:


FR>
FR>ocamlc -custom -I +labltk labltk.cma gui.ml -o gui.exe -cclib "-subsystem windows"
FR>


FR>При этом должен быть доступен соответствующий набор сишных компиляторов, например

FR>если используешь инсталятор с ocaml.org должен быть установлен и cygwin.

С первого раза не вышло Компилятор поставил, но
J:\ocaml\gui>ocamlc -custom -I +labltk labltk.cma gui.ml -o gui.exe -cclib "-subsystem windows"
"i686-w64-mingw32-gcc" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
** Fatal error: Cannot run i686-w64-mingw32-gcc -print-sysroot

Компилятор находится тут "C:\Cygwin\bin\i686-w64-mingw32-gcc.exe" куда можно прописать этот путь чтоб заработало?
Re[3]: Ocaml gui приложения по виндовс
От: FR  
Дата: 21.09.13 16:49
Оценка:
Здравствуйте, SkoAleVal, Вы писали:


SAV>Компилятор находится тут "C:\Cygwin\bin\i686-w64-mingw32-gcc.exe" куда можно прописать этот путь чтоб заработало?


Добавь перед компиляцией (или вообще в переменные окружения)
set path=C:\Cygwin\bin;%path%
Re[2]: Ocaml gui приложения по виндовс
От: SkoAleVal  
Дата: 21.09.13 18:00
Оценка:
Спасибо большое за помощь собрал этой командой

ocamlc -I +labltk labltk.cma gui.ml -custom -cclib -subsystem -cclib windows -o gui.exe

еще проблема как иконку штатными средствами прибабахать ?
Re[3]: Ocaml gui приложения по виндовс
От: FR  
Дата: 22.09.13 09:37
Оценка: +1
Здравствуйте, SkoAleVal, Вы писали:

SAV>еще проблема как иконку штатными средствами прибабахать ?


Все это средствами cygwin делается, там есть утилитка windres для компиляции ресурсов,
создаешь файл res.rc с таким содержимым:
IDI_MAIN_ICON  ICON  "main.ico"

где вместо "main.ico" путь к твоей иконке.
и компилируешь:
windres res.rc -O coff -o res.res
ocamlc -custom -I +labltk labltk.cma gui.ml -o gui.exe -cclib "-subsystem windows" -cclib res.res
Re[4]: Ocaml gui приложения по виндовс
От: SkoAleVal  
Дата: 22.09.13 12:07
Оценка:
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, SkoAleVal, Вы писали:


SAV>>еще проблема как иконку штатными средствами прибабахать ?


FR>Все это средствами cygwin делается, там есть утилитка windres для компиляции ресурсов,

FR>создаешь файл res.rc с таким содержимым:
FR>
FR>IDI_MAIN_ICON  ICON  "main.ico"
FR>

FR>где вместо "main.ico" путь к твоей иконке.
FR>и компилируешь:
FR>
FR>windres res.rc -O coff -o res.res
FR>ocamlc -custom -I +labltk labltk.cma gui.ml -o gui.exe -cclib "-subsystem windows" -cclib res.res
FR>


Спасибо FR за помощь все получилось.

Еще есть вопрос по базам данных я пытался поставить sqlite


C:\OCaml\lib\sqlite3>ocaml setup.ml -configure

Configuration:
ocamlfind: ........................................... C:\OCaml\bin\ocamlfind.EX
E
ocamlc: .............................................. C:\OCaml\bin\ocamlc.opt.E
XE
ocamlopt: ............................................ C:\OCaml\bin\ocamlopt.opt
.EXE
ocamlbuild: .......................................... C:\OCaml\bin\ocamlbuild.E
XE
Package name: ........................................ sqlite3-ocaml
Package version: ..................................... 2.0.4
os_type: ............................................. Win32
system: .............................................. mingw
architecture: ........................................ i386
ccomp_type: .......................................... cc
ocaml_version: ....................................... 4.01.0
standard_library_default: ............................ C:/ocamlmgw/lib
standard_library: .................................... C:\OCaml\lib
standard_runtime: .................................... ocamlrun
bytecomp_c_compiler: ................................. i686-w64-mingw32-gcc -O -
mms-bitfields -Wall -Wno-unused
native_c_compiler: ................................... i686-w64-mingw32-gcc -O -
mms-bitfields -Wall -Wno-unused
model: ............................................... default
ext_obj: ............................................. .o
ext_asm: ............................................. .s
ext_lib: ............................................. .a
ext_dll: ............................................. .dll
default_executable_name: ............................. camlprog.exe
systhread_supported: ................................. true
flexlink: ............................................ C:\OCaml\bin\flexlink.EXE

FlexDLL version (Win32): ............................. 0.31
Install architecture-independent files dir: .......... C:\Program Files\sqlite3-
ocaml
Install architecture-dependent files in dir: ......... $prefix
User executables: .................................... $exec_prefix\bin
System admin executables: ............................ $exec_prefix\sbin
Program executables: ................................. $exec_prefix\libexec
Read-only single-machine data: ....................... $prefix\etc
Modifiable architecture-independent data: ............ $prefix\com
Modifiable single-machine data: ...................... $prefix\var
Object code libraries: ............................... $exec_prefix\lib
Read-only arch-independent data root: ................ $prefix\share
Read-only architecture-independent data: ............. $datarootdir
Info documentation: .................................. $datarootdir\info
Locale-dependent data: ............................... $datarootdir\locale
Man documentation: ................................... $datarootdir\man
Documentation root: .................................. $datarootdir\doc\$pkg_nam
e
HTML documentation: .................................. $docdir
DVI documentation: ................................... $docdir
PDF documentation: ................................... $docdir
PS documentation: .................................... $docdir
findlib_version: ..................................... 1.4
is_native: ........................................... true
suffix_program: ...................................... .exe
Remove a file.: ...................................... del
Remove a directory.: ................................. rd
Turn ocaml debug flag on: ............................ true
Turn ocaml profile flag on: .......................... false
Compiler support generation of .cmxs.: ............... true
OCamlbuild additional flags: .........................
Strict compile-time checks: .......................... true
Create documentations: ............................... true
Compile tests executable and library and run them: ... false
ocamldoc: ............................................ C:\OCaml\bin\ocamldoc.EXE



C:\OCaml\lib\sqlite3>ocaml setup.ml -build
Package sqlite3 was not found in the pkg-config search path.
Perhaps you should add the directory containing `sqlite3.pc'
to the PKG_CONFIG_PATH environment variable
No package 'sqlite3' found
Failure: pkg-config failed for cflags.
E: Failure("Command 'C:\\OCaml\\bin\\ocamlbuild.EXE -classic-display -no-log -no
-links -install-lib-dir C:\\OCaml\\lib\\ocamlbuild -byte-plugin lib/libsqlite3_s
tubs.a lib/dllsqlite3_stubs.dll lib/sqlite3.cma lib/sqlite3.cmxa lib/sqlite3.a l
ib/sqlite3.cmxs -tag debug' terminated with error code 2")


но безуспешно, PKG_CONFIG_PATH что я должен там указать попробовал все что пришло в голову, но не помогло.
кстати какие еще БД есть в Ocaml?
Re[5]: Ocaml gui приложения по виндовс
От: FR  
Дата: 04.10.13 09:49
Оценка:
Здравствуйте, SkoAleVal, Вы писали:

SAV>Еще есть вопрос по базам данных я пытался поставить sqlite


Если еще не получилось может стоит попробовать готовые сборки, раньше
была одна хорошая тут http://overbld.sourceforge.net/ там сразу есть
куча библиотек включая и sqlite, конечно версия OCaml чуть устаревшая
при этом.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.