[SOLVED] mono-3.2.8 armhf + gtk-sharp2-2.12 on A20

Started by armandob, February 25, 2014, 11:04:27 AM

Previous topic - Next topic

armandob

Hi all,
i builded and tested with success latest mono framework (3.2.8) from git and gtk-sharp2 (2.12)


this arm release work fine for DateTime and haven't float problem.

steps:


MONO
==========
$ sudo apt-get install automake libtool
$ git clone https://github.com/mono/mono.git
$ cd mono
$ git submodule init
$ git submodule update
$ ./autogen.sh --prefix=/usr
$ make get-monolite-latest

copy basic.exe to gmcs.exe
$ cd mcs/class/lib/monolite
$ cp basic.exe gmcs.exe
$ cd ../../../../

$ make EXTERNAL_MCS="${PWD}/mcs/class/lib/monolite/gmcs.exe"
$ sudo make install



GTK-SHARP2
==========
$ sudo apt-get install libgtk2.0-dev libpango1.0-dev libglade2-dev
$ ./bootstrap-2.12
$ ./configure --prefix=/usr
$ make
$ sudo make install



you can find binaries for debian r5 image here:
gtk-sharp2-2.12
mono-3.2.8

PaceyIV

Great news,
even though I prefer develop in C++ with Qt  :D

armandob

Hi PaceyIV,
i have a good news for you, can use Qt also under C# on linux with Qyoto (es: themonospot-qt)

now there is also a cross platform solution assemblygen and latest project started that should solve many qt binding problem is Qt-Sharp by Dimitri Dobrev

Marc Coussement

Hi,

Great guide, by following your instructions I was able to install mono on my A20 debian 3.4.90+

At first sight no errors were reported, meaning I didn't see any error messages between all the output.

But I can't find out how to run a C# program.

Entering "mono myCsharp.exe" or "mono –V" I get "mono : command not found".

I am complete new to Linux, any help is well appreciated.

Marc,

armandob

Hi Marc,
if you try to
ls /usr/bin/mono
system list file or not ?

Marc Coussement

Hi,

thanks for your response,

I don't have mono in /usr/bin

Today i made a fresh "debian 3.4.90+" SD card and i used your .deb files to install mono.

see your post:
you can find binaries for debian r5 image here:
gtk-sharp2-2.12
mono-3.2.8

Now i can run a simple "hello" console program. It works perfect.

But the following (source code at the end) fails to compile.
I guess something is wrong, or as a newbie i am missing something, and how to use the "-pkg" option.
I can see a lot of folders in the "/usr/lib/mono/gac" folder and there is a "pango-sharp/2.12.0.0_xxx" folder


root@A20:~# mcs Downloads/Program.cs -pkg:gtk-sharp-2.0

error CS0006: Metadata file `/usr/lib/pkgconfig/../../lib/mono/gtk-sharp-2.0/pango-sharp.dll' could not be found
error CS0006: Metadata file `/usr/lib/pkgconfig/../../lib/mono/gtk-sharp-2.0/atk-sharp.dll' could not be found
error CS0006: Metadata file `/usr/lib/pkgconfig/../../lib/mono/gtk-sharp-2.0/gdk-sharp.dll' could not be found
error CS0006: Metadata file `/usr/lib/pkgconfig/../../lib/mono/gtk-sharp-2.0/gtk-sharp.dll' could not be found
error CS0006: Metadata file `/usr/lib/pkgconfig/../../lib/mono/gtk-sharp-2.0/glib-sharp.dll' could not be found
Compilation failed: 5 error(s), 0 warnings

Source code:

using Gtk;
using System;

class Hello {
        static void Main()
        {
                Application.Init ();
                Window window = new Window ("helloworld");
                window.Show();
                Application.Run ();
         }
}


Marc Coussement

Hi, some more information

So the error is about Metadate files missing.. ???

information about the "gtk-sharp-2.0" pkg:
root@A20:/usr/lib# pkg-config --libs "gtk-sharp-2.0"
-r:/usr/lib/pkgconfig/../../lib/mono/gtk-sharp-2.0/pango-sharp.dll -r:/usr/lib/pkgconfig/../../lib/mono/gtk-sharp-2.0/atk-sharp.dll -r:/usr/lib/pkgconfig/../../lib/mono/gtk-sharp-2.0/gdk-sharp.dll -r:/usr/lib/pkgconfig/../../lib/mono/gtk-sharp-2.0/gtk-sharp.dll -r:/usr/lib/pkgconfig/../../lib/mono/gtk-sharp-2.0/glib-sharp.dll

The pango-sharp.dll is in following folder
root@A20:/usr/lib# find -name pango-sharp.dll
./mono/gac/pango-sharp/2.12.0.0__35e10195dab3c99f/pango-sharp.dll

There is no folder
root@A20:/# ls /usr/lib/mono/gtk-sharp-2.0
ls: cannot access /usr/lib/mono/gtk-sharp-2.0: No such file or directory

One can find the gtk-sharp-2.0 folder
root@A20:/# ls /usr/lib/gtk-sharp-2.0
gapi2xml.pl  gapi_codegen.exe  gapi-fixup.exe  gapi-parser.exe   gapi_pp.pl

mono folders in lib
root@A20:/# ls /usr/lib/mono
2.0  3.5  4.0  4.5  gac  mono-configuration-crypto  xbuild  xbuild-frameworks

I guess all stuf is in the gac folder
root@A20:/# ls /usr/lib/mono/gac
Accessibility             policy.2.6.pango-sharp
atk-sharp             policy.2.8.atk-sharp
Commons.Xml.Relaxng          policy.2.8.gdk-sharp
cscompmgd             policy.2.8.glade-sharp
CustomMarshalers          policy.2.8.glib-sharp
EntityFramework             policy.2.8.gtk-dotnet
EntityFramework.SqlServer       policy.2.8.gtk-sharp
gdk-sharp             policy.2.8.pango-sharp
glade-sharp             RabbitMQ.Client
glib-sharp             System
gtk-dotnet             System.ComponentModel.Composition
gtk-sharp             System.ComponentModel.DataAnnotations
I18N                System.Configuration
I18N.CJK             System.Configuration.Install
I18N.MidEast             System.Core
I18N.Other             System.Data
I18N.Rare             System.Data.DataSetExtensions
I18N.West             System.Data.Linq
IBM.Data.DB2             System.Data.OracleClient
ICSharpCode.SharpZipLib          System.Data.Services
Microsoft.Build             System.Data.Services.Client
Microsoft.Build.Engine          System.Design
Microsoft.Build.Framework       System.DirectoryServices
Microsoft.Build.Tasks          System.DirectoryServices.Protocols
Microsoft.Build.Tasks.v12.0       System.Drawing
Microsoft.Build.Tasks.v3.5       System.Drawing.Design
Microsoft.Build.Tasks.v4.0       System.Dynamic
Microsoft.Build.Utilities       System.EnterpriseServices
Microsoft.Build.Utilities.v12.0     System.IdentityModel
Microsoft.Build.Utilities.v3.5       System.IdentityModel.Selectors
Microsoft.Build.Utilities.v4.0       System.IO.Compression
Microsoft.CSharp          System.IO.Compression.FileSystem
Microsoft.VisualC          System.Json
Microsoft.Web.Infrastructure       System.Json.Microsoft
Mono.C5                System.Management
Mono.Cairo             System.Messaging
Mono.Cecil             System.Net
Mono.Cecil.Mdb             System.Net.Http
Mono.CodeContracts          System.Net.Http.Formatting
Mono.CompilerServices.SymbolWriter  System.Net.Http.WebRequest
Mono.CSharp             System.Numerics
Mono.Data.Sqlite          System.Reactive.Core
Mono.Data.Tds             System.Reactive.Debugger
Mono.Debugger.Soft          System.Reactive.Experimental
monodoc                System.Reactive.Interfaces
Mono.Http             System.Reactive.Linq
Mono.Management             System.Reactive.Observable.Aliases
Mono.Messaging             System.Reactive.PlatformServices
Mono.Messaging.RabbitMQ          System.Reactive.Providers
Mono.Parallel             System.Reactive.Runtime.Remoting
Mono.Posix             System.Reactive.Windows.Forms
Mono.Security             System.Reactive.Windows.Threading
Mono.Security.Win32          System.Runtime.Caching
mono-service             System.Runtime.DurableInstancing
Mono.Simd             System.Runtime.Remoting
Mono.Tasklets             System.Runtime.Serialization
Mono.Web             System.Runtime.Serialization.Formatters.Soap
Mono.WebBrowser             System.Security
Mono.XBuild.Tasks          System.ServiceModel
Novell.Directory.Ldap          System.ServiceModel.Activation
Npgsql                System.ServiceModel.Discovery
nunit-console-runner          System.ServiceModel.Routing
nunit.core             System.ServiceModel.Web
nunit.core.extensions          System.ServiceProcess
nunit.core.interfaces          System.Threading.Tasks.Dataflow
nunit.framework             System.Transactions
nunit.framework.extensions       System.Web
nunit.mocks             System.Web.Abstractions
nunit.util             System.Web.ApplicationServices
OpenSystem.C             System.Web.DynamicData
pango-sharp             System.Web.Extensions
PEAPI                System.Web.Extensions.Design
policy.2.10.atk-sharp          System.Web.Http
policy.2.10.gdk-sharp          System.Web.Http.SelfHost
policy.2.10.glade-sharp          System.Web.Http.WebHost
policy.2.10.glib-sharp          System.Web.Mvc
policy.2.10.gtk-dotnet          System.Web.Razor
policy.2.10.gtk-sharp          System.Web.Routing
policy.2.10.pango-sharp          System.Web.Services
policy.2.4.atk-sharp          System.Web.WebPages
policy.2.4.gdk-sharp          System.Web.WebPages.Deployment
policy.2.4.glade-sharp          System.Web.WebPages.Razor
policy.2.4.glib-sharp          System.Windows
policy.2.4.gtk-dotnet          System.Windows.Forms
policy.2.4.gtk-sharp          System.Windows.Forms.DataVisualization
policy.2.4.pango-sharp          System.Xaml
policy.2.6.atk-sharp          System.Xml
policy.2.6.gdk-sharp          System.Xml.Linq
policy.2.6.glade-sharp          System.Xml.Serialization
policy.2.6.glib-sharp          WebMatrix.Data
policy.2.6.gtk-dotnet          WindowsBase
policy.2.6.gtk-sharp

I am a complete newbie to Linux and to Mono
any help appreciated

Marc

Marc Coussement

One last information,

namespace name `Gtk' could not be found

Compiling without specifying the pkg:

root@A20:/# mcs root/Downloads/Program.cs
root/Downloads/Program.cs(2,7): error CS0246: The type or namespace name `Gtk' could not be found. Are you missing an assembly reference?
Compilation failed: 1 error(s), 0 warnings