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
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.
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 ¯_(ツ)_/¯).
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
.
Comando para executar o arquivo ola_mundo.exe
que foi gerado:
mono ola_mundo.exe
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.
Você tem a opção de usar o mono ou a opção oficial da Microsoft, o .NET Core que é multiplataforma
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?
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.
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);
}
}
}
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.