Windows 7에서 마이그레이션하려는 새로운 Linux "고급 사용자"로서 저는 검색을 통해 답변할 수 있는 기본적인 질문을 거부했지만 이 문제에 봉착했습니다.
Linux 터미널에서 gcc를 사용하여 C에서 실행 파일을 생성하면 권한이 hello.exe
부여되었다는 메시지가 나타납니다 X
. 그런 다음 터미널에서 ./hello.exe
문제 없이 실행할 수 있습니다.
하지만 Caja에서 실행하려고 하면 해당 구성 요소가 텍스트 파일로 표시됩니다. 그러나 "관리자 권한으로 실행"을 선택할 수 있지만 로그인 비밀번호를 입력해야 합니다.
다음 두 가지 설정 중 어느 것이 활성화되어 있는지는 중요하지 않습니다.
- 실행 가능한 텍스트 파일이 열리면 실행합니다.
- 실행 가능한 텍스트 파일을 열 때 봅니다.
하지만 두 번째 설정으로 남겨둡니다. 그렇지 않으면 텍스트 파일을 보거나 편집할 때마다 무엇을 하고 싶은지 묻는 메시지가 표시됩니다.
sudo caja
(비밀번호 필요)를 사용하여 터미널에서 Caja를 시작하려고 시도했지만 Caja가 실행 파일을 실행하지 않습니다.별말씀을요"실행" 옵션이 더 이상 존재하지 않기 때문입니다.
Caja에서 직접 실행 파일을 실행하는 방법: 더블 클릭?
편집: 실행 파일을 실행할 수 있습니까?어느두 번 클릭만으로 파일 관리자를 열 수 있나요?
편집 2: 이제 Nemo 파일 관리자를 사용하여 Mint Cinnamon을 실행하지만 문제는 기본적으로 동일합니다. 실행 파일을 직접 실행할 수 있는 일부 설정이 누락되었습니까?
편집 3:
조사하다가 발견한 것은
그놈은 노틸러스의 바이너리 응용프로그램 실행 기능을 제거합니다.:
"즉, 노틸러스를 사용하여 프로그램, 스크립트 또는 응용 프로그램을 두 번 클릭하여 시작할 수 없습니다."2018년 5월)
파일 관리자 작성자가 이를 오픈 소스 코드의 파생물로(또는 아마도 공통 시스템 구성 요소를 사용하여) 개발했다고 의심하는 것처럼, 아마도 지금은 누구도 그렇게 하지 않을 것입니다.
이 Wikipedia 페이지도 찾았습니다.파일 관리자 비교다양한 테이블이 있어요. 그것은 호출됩니다파일 특성마지막 열은 "실행 파일 실행"이었으므로 해당 파일 관리자 중 몇 가지를 사용해 보았습니다.
- 전혀그들 중 일부는 내가 컴파일한 실행 파일을 실행합니다(일부는 시스템 드라이브가 아닌 작업 드라이브에 쉽게 액세스할 수조차 없습니다).
그러나 어쨌든 나는 이제 간단한 해결 방법을 발견했습니다. 이는 내가 가장 좋아하는 텍스트 편집기인 Geany가 Put it into the project를 변경하지 않고 클릭하거나 F5 키를 눌러 현재 소스 파일(존재하는 경우)의 실행 파일을 실행한다는 것입니다.
답변1
예, Caja와 같은 파일 관리자에서 실행 파일을 실행할 수 있습니다.
hello.c
GUI 없이 간단한 "hello, world" 프로그램이 포함된 파일이 홈 디렉터리에 있다고 가정합니다 /home/User
. 예:
#include <stdio.h>
int main()
{
printf("hello, world\n");
}
프로그램이 실행된 후 컴파일되어 gcc -o hello hello.c
실행 파일로 생성됩니다 hello
.
Caja에서 직접 실행하려면 hello
터미널을 시작하고 그 안에서 실행 파일을 실행하는 실행 프로그램을 제공하거나 간단한 GUI로 실행 파일을 제공할 수 있습니다.
런처를 사용할 계획이라면 다른 작업을 하기 전에(이전에 이 작업을 수행한 적이 없는 경우) 터미널을 열고 "기본 설정"으로 이동하여 "HoldOpen"이라는 새 프로필을 추가한 다음 "명령할 때"를 설정하는 것이 좋습니다. 종료"를 해당 프로필의 "명령" 탭에서 "터미널 열린 상태 유지"로 변경합니다. 그렇지 않으면 터미널이 열리고 프로그램을 실행한 다음 실행기에서 시작할 때 결과가 표시되기 전에 닫힙니다.
그런 다음 hello
프로그램의 실행 프로그램을 만듭니다. 런처는 .desktop
확장명이 포함된 텍스트 파일일 뿐이며 개념적으로는 Windows 바로 가기와 유사합니다. 확장자는 파일이 Caja 에 나타날 때 표시되지 않지만 .desktop
터미널의 디렉토리 목록에는 표시됩니다. 있는 그대로 저장해야 하는 간단한 실행 프로그램은 다음과 같습니다 hello.desktop
.
[Desktop Entry]
Version=1.0
Type=Application
Name=hello
Comment=
Exec=mate-terminal --profile=HoldOpen -e "/home/User/hello"
Icon=
Path=
Terminal=false
StartupNotify=false
런처는 수동으로 작성하거나 (위와 같이) 데스크탑을 마우스 오른쪽 버튼으로 클릭하고 "런처 생성..."을 선택한 다음 최소한 "이름" 및 "명령" 상자를 입력하여 작성할 수 있습니다(후자는 "Exec " 열쇠) .
Caja에서 실행 프로그램 파일을 두 번 클릭하면 hello
자체 터미널에서 실행되고 출력이 표시됩니다.
"터미널" 키는 실제로 실행 중인 메이트 터미널이고 hello
메이트 터미널 내에서 실행되기 때문에 "false"로 설정되어 있습니다.
또한 mate-terminal 대신 gnome-terminal을 사용하는 경우 터미널에서 출력을 보려면 "hello, world" 앞에 몇 가지 줄 바꿈을 추가해야 할 수도 있습니다.
런처에 대한 자세한 내용은 Freedesktop.org를 참조하세요.데스크탑 엔트리 사양.
실행 프로그램 없이 Caja에서 직접 두 번 클릭으로 프로그램을 실행할 수 있는 또 다른 대안은 Zenity 응용 프로그램을 사용하여 요청 시 GUI 대화 상자를 생성하여 프로그램에 간단한 GUI를 제공하는 것입니다. 를 실행하여 Zenity를 설치할 수 있습니다 sudo apt-get install zenity
. 그런 다음 hello.c 프로그램의 stdio printf 문을 stdlib 및 시스템 호출로 대체하여 대화 상자를 표시할 수 있습니다.
#include <stdlib.h>
int main()
{
system("zenity --info --title='Hello' --text='hello, world'");
}
man zenity
Zenity 애플리케이션에 대한 자세한 내용은 리소스를 참조하세요.