Ocaml gui приложения по виндовс
Здравствуйте нужна помощь знатаков 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 ();;
пол дня убил на поиск в интернете
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 приложения по виндовс
Здравствуйте, 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 приложения по виндовс
Спасибо большое за помощь собрал этой командой
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 приложения по виндовс
Здравствуйте, 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 чуть устаревшая
при этом.
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить