[VisualStudio] recomiendan alternativas a MSVC (Microsoft Visual C/C++ Compiler)?

ultimamente he dependido de este compilador para crear mis proyectos C de uefi como S-SUN y KellyBootloader ya que no se de makefile y ademas no puedo instalar el maldito compilador GCC de x86_64 en mi ubuntu wsl asi que si , estoy anclado a usar windows, alguien recomienda una solucion para ayudarme a buscar algo que sea eficiente para compilar con uefi?

Gcc es mejor… y abierto

2 Me gusta

pero no lo puedo instalar en mi wsl se tarda un monton y no pasa de no se que paso
aparte no se si el codigo que hice en visual studio funcionara en gcc aparte no se configurarlo, ya tengo un makefile pero no puedo compilarlo por que

���y��)K���Y8^|�� �����m��A�!)��u�\��ݛ��Zͩ�_:d!�M�ʑ�{skx�-����XD�yKק�|�|@H�c�+���o�3
                                                                                    _L�c��+o6G�&ڇS~V�B�
�I�¢���␦�nS������گ?Lo� ��`n�3�'��Ⱥ�Q�EU{M���d
                                            b0�␦K�{���[�5�(^���}�-yd!��ИK��]��ķ�#�����"#z����?Ð�ӥ�6��
~��h��Jc"�i#;���
                �aB��2���x��e���?;�|����*hv˲
                                            �O��D�c!�S�!���ˡ�N[�;N�Z�
                                                                     �����$��   Z%�l��=�#;��' c�Ը��,    ��\a��
�xM�.�E��?2�����y
$s�y�Ӷ� e�id�8��@V�!S��A�{�kR�/Y���FQ=�0��7�}
                                             QHwӞ�Au�z2r����`'Ⱓk1�4�L_!��gw␦�S�}hD�
+�ß]��++R�v&Mf���~
�;�JS���)y3�      Y�p���R�!���[� K��~��r��
            �-�^¾�ƎJ��;�Ƒ�eΓY�uު�T9��}�r*p�M����W��*���9�(�J�
�Kz��*��v�k��a��v%e�/����p.X�c"�^��    �}�cC�V���,�*V[�c3z�t�V�%a�:l����lĸa�IC6ˆ��3YjDX!��0@�hk`�m�m�n�7
��0J�M>�d�+`e�eF:�,c]��D
>�M�ւjb91#L`����b��A�Y22�[~+i�q��䐞><=�J�[�S�rvk9c
                                                  ����K�єt���ԡwg�U�٤���V�Ir��T�L�g
����X#���(�}�(3x%����ʹ��2��(�両h��֞���3:�����L�*�bvon5���"�H�u^��3'婥����1����#���̳Y��˥�k�W���F���&��W`�$W(
�p�c"Aﯧ������,}���*&���/S���/�#��u�Ak^��G�l�G#��s�`��h$?8>:[�0��4�jeg����?���.�tEC��%�9U��<hH�t�R���1?�.��%z�
�����G~�F]���MR�x�I�'�rR�����&�$8��E4|r/�Uڷ׽
                                             ���r+;?�b'�����k�=�,�R7�f�EGd:�F�,}�qUήĺ8ָ����oNoǓ��        +� ��w�
�
�������+6m�����K�5�,␦Bþ�(6\�ϧ����
                                 �q{7��)�5��塼ncWq1�b�
                                                      g��c|���O�Ђ,J��${/l=>�kX"��u�k���Ն�M`�zw�Q�Пߝ�_�X�G-
�����.�/>�
          ��?�[e
ͻ5-&/7�4+␦z���x'!������
                       ␦�n�sQ�]␦�?K��<���d�tg�b��~���ʡȭ2����d�B�|D�����5@�**��57זO�-^�hJ�
Y��R���8�����'�v!,>     �۬�eěW�1�e��|v΋��:w�b�1��9XQپ*��T��<� G�("e �!@
�Q �%'@��!P� ��'
.��}����7␦�H�� �Z�|;lP␦�n����I����ؼ��k^1�)���B
���fKk7u���?R>_�p�B��*��p�թ�Hy%�}<{H/��w�N�-#�(
RW��h��nE�Lj�?<��Z:��$&�R����E���M��`␦1|d���2�!l˄�
                                                  i` ׻���T��&��v�v#��O$���lcdD�>�
]/���.k�m��L�B�"�ܬ*���Y4��Z۴�y
�IIq��鲤`G�X���
               (�����/9����c7)��mc��
                                    ��U�����3&�B�6�-�|�S��+l[�l����$YZ���B^9O�J
                                                                               �g��u$/q�/���U�"�O�
1�֬�m۟�R�X�HZ������*|Fd��� d>���[���"=��I䷾���0.�x����c77�|[H��`������4r��w���.d
��L}������"z�� ��@��    r�=S��
Qb�3s⼲�&�;P�8z �?�z��"G� �M����.8�w5i
�EF������؟K�yt/.�yS�toj��h��k�p2dl�\���
86���)x�rnP�f�S� w�=,~����䏇"�\i�;Xhe�Q�#k���@��r�����S�ؕ�H@n��?�,�9����FIU�.�Sm�bwL,��C��j6�W�in/����
�"��R�v�S����q�NS�.�ky�\W����K�ޑa��,�G13t��<)6���
BwDh��A��l��eVc%~��@u�^۴s(��;��t�␦�ȠR��`j)�a�PPhfut,g朕
root@windosw-erick:~# donet
Command 'donet' not found, did you mean:
  command 'dotnet' from snap dotnet (9.0.6)
  command 'dotnet' from snap dotnet-sdk (8.0.407)
  command 'dotnet' from deb dotnet-host-8.0 (8.0.14-0ubuntu1~24.04.1)
See 'snap info <snapname>' for additional versions.
root@windosw-erick:~# dotnet
Command 'dotnet' not found, but can be installed with:
snap install dotnet           # version 9.0.6, or
snap install dotnet-sdk       # version 8.0.407
apt  install dotnet-host-8.0  # version 8.0.14-0ubuntu1~24.04.1
See 'snap info <snapname>' for additional versions.
root@windosw-erick:~# snap install dotnet
error: This revision of snap "dotnet" was published using classic confinement and thus may perform
       arbitrary system changes outside of the security sandbox that snaps are usually confined to,
       which may put your system at risk.

       If you understand and want to proceed repeat the command including --classic.
root@windosw-erick:~# snap install dotnet -classic
error: unknown flag `c'
root@windosw-erick:~# snap install dotnet --classic
dotnet 9.0.6 from Canonical✓ installed
root@windosw-erick:~# erick
root@windosw-erick:/mnt/c/users/erick# cd onedrive
root@windosw-erick:/mnt/c/users/erick/onedrive# cd erickcraftstudiosmgrchannel
root@windosw-erick:/mnt/c/users/erick/onedrive/erickcraftstudiosmgrchannel# cd "Saved Proyects"
root@windosw-erick:/mnt/c/users/erick/onedrive/erickcraftstudiosmgrchannel/Saved Proyects# cd KellyBootloaderCode
root@windosw-erick:/mnt/c/users/erick/onedrive/erickcraftstudiosmgrchannel/Saved Proyects/KellyBootloaderCode# cd KellyBootloader
root@windosw-erick:/mnt/c/users/erick/onedrive/erickcraftstudiosmgrchannel/Saved Proyects/KellyBootloaderCode/KellyBootloader# make
Makefile:126: *** The selected compiler (x86_64-w64-mingw32-gcc) was not found.  Stop.
root@windosw-erick:/mnt/c/users/erick/onedrive/erickcraftstudiosmgrchannel/Saved Proyects/KellyBootloaderCode/KellyBootloader#

el problema es que

e/KellyBootloader# apt install x86_64-w64-mingw32-gcc
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package x86_64-w64-mingw32-gcc
root@windosw-erick:/mnt/c/users/erick/onedrive/erickcraftstudiosmgrchannel/Saved Proyects/KellyBootloaderCode/KellyBootloader#

como soluciono esto

gcc es la mejor alternativa, o puedes irte por el lado minimalista y usar tcc.

1 me gusta

es que algo me dice que tengo que usar gcc o sino ne se compilara bien o me dara errores pero donde encuentro x86_64-w64-mingw32-gcc
si no lo encuentra apt

¿No te funciona apt install gcc?

si me lo instalo pero sigue sucediendo el error root@windosw-erick:/mnt/c/users/erick/onedrive/erickcraftstudiosmgrchannel/Saved Proyects/KellyBootloaderCode/KellyBootloader# make
Makefile:126: *** The selected compiler (x86_64-w64-mingw32-gcc) was not found. Stop.
root@windosw-erick:/mnt/c/users/erick/onedrive/erickcraftstudiosmgrchannel/Saved Proyects/KellyBootloaderCode/KellyBootloader#

¿Por qué quieres hacer compilación cruzada? ¿Vas a ejecutar tu programa en bindows? Si lo vas a hacer direcamente en ubunto no necesitas hacer eso.

no, lo voy a compilar para uefi , el proyecto esta basado en pbatard/uefi-simple: UEFI development made easy no lo compilo para windows, lo compilo para .efi

Por eso, no emplees el migw32 que es para compilar programas para bindows, usa el gcc para Ubuntu.

pero asi lo viene en el makefile, y yo no se de esas cosas y no vaya a romper algo o hacer que ya nunca se pueda compilar, aqui esta el makefile KellyBootloader/Makefile at main · ErickStudios/KellyBootloader

Buenas,

No entiendo lo de estar anclado a Windows, usa GNU/Linux o usa una máquina virtual en tu Windows.

Tendrás muchos menos problemas para desarrollar prácticamente en cualquier lenguage de programación.

Si no estás usando C# o relacionados con Microsoft… GNU/Linux + GCC.

Nunca te recomendaría Windows o WSL para temas de C ó C++.

Saludos

1 me gusta

Tarde o temprano vas a tener que aprender sobre compilación cruzada si quieres irte a bajo nivel.

Cada OS y arquitectura requiere su compilador propio, gcc “normal” para GNU/Linux, mingw para bindows, arm-none-eabi-gcc para arm, etc. Lo que sucede con tu programa es que llama a un compilador que solo funciona en bindows, aunque lo hagas funcionar el binario no va a ser ejecutado en GNU/Linux. Cuando quieres usar un compilador para otra arquitectura o OS se denomina compilación cruzada.

La solución en tu caso es alterar el Makefile para que puedas usar el gcc de ubuntu porque el archivo está diseñado aparentemente para bindows, no para GNU/Linux.

NOTA: Mejora tus commits, “f” no dice que cambios has realizado ni porque.

no le deseo esto a nadie


es que la verdad el compilador hasta estoy pidiendo a copilot los comandos para instalarlo

@LosHerederosDeRosas ya puedes dejar de responder, estoy obligado a usar windows por que el make esta fallando aproposito, ya perdimos

Podes instalar gcc version windows:

Descargas ese instalador (en windows, no en wsl).
Y, seguís los pasos que te da la página (si tienes una duda concreta, te puedo ayudar).

msys2 es un “emulador” de terminal, que “emula” la terminal de Arch linux con su gestor pacman, pudiendo instalar varias apps de linux, pero su versión para windows desde la terminal que te da.

Después, para empezar un nuevo proyecto con Makefile (aunque varios usan más el CMake), simplemente haces:

El archivo Makefile:

all:
	gcc main.c -c main.o
	gcc main.o -o game.exe

Con el -c → Compilas el código, generando el .o
Con el -o → Generas el ejecutable, en windows el .exe. Si le mandas el .c con -o, te compila y linka todo de una.

Con eso bastaría para usar gcc (y g++) para generar ejecutables en windows.

PD: Yo también uso el mingw, pero en linux, para compilar mis programas tanto para linux cómo windows desde linux.

se que mencionaste que no puedes instalar gcc pero para mi gusto y valores es mucho mejor ya que es libre, se que no es una solucion debido al problema que mencionaste pero espero que le des tiempo a solucionar tu error e instalar gcc :face_blowing_a_kiss: