[RESOLVIDO] Compilar programa em C#

#1

Olá pessoas, gostaria de saber se tem alguma IDE para compilar códigos em c#, já baixei o visual code, mas não funciona. Baixei o mono e tentei compilar pelo terminal mas também não funciona.
Uso o Linux Mint 18.3 32bits

1 Like

#2

Você pode compilar C usando gcc

$ gcc nome.c -o nome

Para executar

$ ./nome

Eu uso o sublime para programar mas se quiser uma IDE tem MonoDevelop que funciona muito bem e o Visual Studio Code. Você não conseguiu usar pois não deve ter configurado o compilador, abra as configurações do app e adicione o compilador.

0 Likes

#3

O gcc não tem suporte pra C#, o que tu tá procurando é o Mono mesmo, leia as docs do site oficial e checa se tu não tá fazendo nada errado (ou vai pra outra linguagem ¯_(ツ)_/¯).

0 Likes

#4

Olá @Stark

Tente da seguinte forma:

sudo apt update
sudo apt install mono-devel mono-complete

Para testar crie um arquivo ola_mundo.cs:

// Olá mundo com C#.
using System;
namespace HelloWorld
{
    class Hello 
    {
        static void Main() 
        {
            Console.WriteLine("Olá Mundo!");

            Console.WriteLine("Pressione qualquer tecla para sair.");
            Console.ReadKey();
        }
    }
}

Comando para compilar o arquivo ola_mundo.cs:

mcs ola_mundo.cs

Lembrando que:

  • mcs: Faz referência às bibliotecas e APIs definidas no .NET 4.0 e suporta o C# 4.0.
  • gmcs: Faz referência às bibliotecas e APIs definidas no .NET 2.0 e .NET 3.5 e suporta o C# 3.0.
  • smcs: Faz referência às bibliotecas e APIs definidas para o Silverlight e suporta o C# 3.0. Este é o compilador usado para criar aplicativos do Silverlight/Moonlight :cold_face:.

Comando para executar o arquivo ola_mundo.exe que foi gerado:

mono ola_mundo.exe

mono-ubuntu

Caso queira utilizar as ultimas versões do Mono você pode seguir o tutorial de instalação do site oficial.

Para facilitar o desenvolvimento ou estudo pode ser interessante utilizar o IDE
monodevelop.

Ou talvez analisar o possibilidade de se utilizar .Net Core ao invés do Mono.

1 Like

#5

Você tem a opção de usar o mono ou a opção oficial da Microsoft, o .NET Core que é multiplataforma

0 Likes

#6

Consegui compilar o olá mundo, mas quando tento compilar o programa que fiz na aula ele da erro. Será que é porque eu fiz no windows?

0 Likes

#7

Não sei até onde Mono é compatível com as versões atuais do C#, mais manda o código de erro da compilação para poder analisar qual é o motivo do erro.

Caso o código de erro seja grande pode mandar via Gist, Pastebin, etc. Se possível mande o código fonte também.

Caso não seja totalmente compatível seria interessante tentar com o .Net Core que é multiplataforma.

0 Likes

#8


tava tentando fazer somar os números. Cod:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace myfirstcode
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int N1 = 0 ; int N2 = 0;
private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show(“Hellow World!!!”,“Alert!”,MessageBoxButtons.OKCancel,MessageBoxIcon.Information);
}

    private void textBox1_TextChanged(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {

    }

    private void btnMessage_Click(object sender, EventArgs e)
    {
        txtMessage1.Text = Convert.ToString(N1);
        txtMessage2.Text = Convert.ToString(N2);
        txtR.Text = Convert.ToString(N1+N2);
    }
}

}

0 Likes

#9

Acho que pode ser porque você fez no Windows.

Para testar seria interessante criar um projeto no monodevelop e ver se o projeto funciona no Windows. A menos que as suas aulas sejam para a faculdade, neste caso segue o da aula mesmo e estuda mono depois.

Os erros que você está tendo é por não declarar a dll (namespace) no momento da compilação, repare que no seu código tem vários using (tipo import em outras linguagens), neste caso elas tem que ser passadas no momento da compilação:

csc Form1.cs -r:System.Windows.Forms.dll -r:System.Drawing.dll

O comando acima é só um exemplo, isso porque não consegui fazer o seu formulário funcionar, pode ser porque não tenho toda a estrutura do projeto.

mais seguem alguns exemplos semelhantes de como ficaria no mono:

Exemplo 1:

/* Form2.cs.

csc Form2.cs -r:System.Windows.Forms.dll

mono Form2.exe
*/
using System;
using System.Windows.Forms;

public class HelloWorld : Form
{
    static public void Main ()
    {
        Application.Run (new HelloWorld ());
    }

    public HelloWorld ()
    {
        Text = "Texto da barra de título!";
    }
} 

Exemplo 2:

/* Form3.cs.

csc Form3.cs -r:System.Windows.Forms.dll -r:System.Drawing.dll

mono Form3.exe
*/
using System;
using System.Drawing;
using System.Windows.Forms;

public class HelloWorld : Form
{
    static public void Main()
    {
        Application.Run(new HelloWorld());
    }

    public HelloWorld()
    {
	Text = "Texto da barra de título!";
        Button b = new Button();
        b.Text = "Clique Aqui";
        b.Click += new EventHandler(Button_Click);
        Controls.Add(b);
    }

    private void Button_Click(object sender, EventArgs e)
    {
        MessageBox.Show("O Botão foi pressionado!");
    }
}

Os comandos de compilação e execução estão no comentário do inicio do código.

1 Like