IT관련 지식들 2022. 12. 19. 16:40

** unused parameter

  - 함수내에서 사용하려고 함수 파라미터에 적용하였으나, 코드를 작성하다 파라미터를 활용하지 않는 경우 발생한다.(파라미터로 선언)

  ==>> 함수 parameter로 전달받는 경우 C++17이상에서 [[maybe_unused]]를 앞에 붙인다.

[참고][https://www.cv-learn.com/20220120-unused-parameter/]

ex)

void add(int a, int b, [[maybe_ununsed]] int c)

{

  return a+b;

}

 

** unused variable

  - 함수내에서 정의하였으나 코드를 작성하면서 사용하지 않게 된 경우 발생한다.(함수내에서 정의)

  ==>> 함수내에서 정의를 하는 경우 함수를 막으면 된다.

ex)

void add(int a, int b)

{

 // int c;

 return a+b;

}

 

**  WILL BE INITIALIZED AFTER/WHEN INITIALIZED HERE

  - 클래스에서 선언한 변수 순서대로 생성자에서 초기화 하지 않을 때 발생하는 경고.

  ==>> 선언한 순서대로 초기화를 한다.

ex)

class Example

{

  public:

    int a, b;

    Example() : b(0), a(0) {}

    Example() : a(0), b(0) {}

}

 

 

'IT관련 지식들' 카테고리의 다른 글

QT 코딩  (0) 2022.11.07
우분투 명령어  (0) 2022.11.07
windows 10 가상 데스트톱, 가상 모니터 기능  (4) 2022.01.26
우분투 18.04 qt설치  (0) 2022.01.14
우분투 18.04 실행 USB 만들기  (0) 2022.01.14
posted by 동글동글82
:
IT관련 지식들 2022. 11. 7. 21:23

 

** QString to char *

예시)

QString qStr;

char *data = qStr.toLocal8bit().data();

 

** 시스템 명령어 사용.

- 현재 시간을 설정

QString cmd = "date -s \"2022-11-11 09:00:00\""

system(cmd.toStdString().c_str());

-현재 프로그램 업데이트

QString FTP_path =  QApplication::applicationDirPath() + "/Download/";
QString strcmd = QString("dpkg --force-overwrite -i %1%2").arg(FTP_path).arg(commonvalues::fw_filename);

system(strcmd.toStdString().c_str());

 

**QString에 공백채우기

-QByteArray를 QString 으로 변경하면서 빈칸을 채우기

> QString currentTime = QString sViolationTime = QString("%1%2%3%4%5%6")
                .arg((quint16)ArrtoUint(framedata.mid(7,2)),4,10,QChar('0')).arg((quint8)framedata[9],2,10,QChar('0')).arg((quint8)framedata[10],2,10,QChar('0'))
                .arg((quint8)framedata[11],2,10,QChar('0')).arg((quint8)framedata[12],2,10,QChar('0')).arg((quint8)framedata[13],2,10,QChar('0')); ///yyyyMMddHHmmss

 

**unsigned char와 QByteArray 변경

-QByteArray를 char로 변경

> QByteArray data;

> const std::size_t count = data.size();

> unsigned char* hex =new unsigned char[count];

> std::memcpy(hex,data.constData(),count);

 

 char* pData = data. Data();

-char를 QByteArray로 변경

>QByteArray databuf;

>databuf = QByteArray((char *)buf, 10);

>databuf = QByteArray::fromRawData(buf, 10);

 

**QByteArray와 QString 변경

-QByteArray를 QString 으로 변경

> QString(databuf)

> QString(databuf.toHex('-'));

 

- QString을 QByteArray으로 변경

> str.toLocal8Bit().constData();

'IT관련 지식들' 카테고리의 다른 글

C++ compile warning 제거 방법  (0) 2022.12.19
우분투 명령어  (0) 2022.11.07
windows 10 가상 데스트톱, 가상 모니터 기능  (4) 2022.01.26
우분투 18.04 qt설치  (0) 2022.01.14
우분투 18.04 실행 USB 만들기  (0) 2022.01.14
posted by 동글동글82
:
IT관련 지식들 2022. 11. 7. 15:08

** 시간설정

-현재 시간 출력

>date 

-현재 시간 변경

>date -s "2022-11-11 09:00:00"

 

** zip 압축 / 압축풀기

-zip으로 압축

>zip [압축파일명] -r [압축파일 경로]

예시)aaa폴더를 a.zip으로 압축

>zip a.zip -r ./aaa

-unzip으로 압축풀기

>unzip [압축파일명]

예시) a.zip 파일을 압축풀기

>unzip a.zip

 

** 문서파일형식 변경

- 파일 형식 확인

>file -bi 파일명

- 파일 형식 변경

>iconv -c -f [원본파일의 인코딩형식] -t [변경할 인코딩형식] 원본파일명 > 변경해서 저장할 파일명

 

예시) a.cpp파일을  iso-8859-1 에서 utf-8로 변경해서 b.cpp에 저장.

>file -bi a.cpp

text/x-c++; charset=iso-8859-1

>iconv -c -f iso-8859-1 -t utf-8 a.cpp > b.cpp

 

** Debian package(deb)파일 설치

- "dpkg -i [설치파일]" 을 실행하면 파일을 복사하는 패키지를 만든다.

>dpkg -i testPacket.deb

- 강제로 설치 "dpkg --force-overwrite -i [설치파일]

>dpkg --force-overwrite -i testPacket.deb

 

** Debian package(deb)파일 만들기

- "dpkg -i [설치파일]" 을 실행하면 파일을 복사하는 패키지를 만든다.

>dpkg-deb --build [작업폴더명]

- 작업폴더는 아래와 같이 구성한 뒤 폴더의 상위폴더에서 명령어를 실행한다.

--의미 : /home/kangmin/Test폴더에 printHelloWorld파일을 복사한다.

--DEBIAN폴더에 있는 파일은 패키지를 설명하거나(control), 패키지 설치 전/후에 실행할 스크립트를 포함한다.

** Debian package(deb)파일 풀기

- 패키지 압축 내용을 푼다. 복사할 폴더가 없으면 새로 생성한다.

>dpkg-deb -x [압축파일명] [압축해제할폴더명]

예시) a.deb파일을 a_dir에 푼다.

>dpkg-deb -x a.deb a_dir

 

** 시리얼포트 동작확인

- 시리얼 포트의 동작 상태를 확인한다.

>stty -F /dev/tty11

 

 

'IT관련 지식들' 카테고리의 다른 글

C++ compile warning 제거 방법  (0) 2022.12.19
QT 코딩  (0) 2022.11.07
windows 10 가상 데스트톱, 가상 모니터 기능  (4) 2022.01.26
우분투 18.04 qt설치  (0) 2022.01.14
우분투 18.04 실행 USB 만들기  (0) 2022.01.14
posted by 동글동글82
:
IT관련 지식들 2022. 1. 26. 09:31

모니터가 1개밖에 없는데 이 모니터로 전체화면을 출력해야 한다.

원격접속을 해서 보려고 하니 전체화면이 보여서 매번 창을 줄인뒤에 점검을 할 수 밖에 없다.

 

이런 경우를 위해 가상모니터 기능을 검색해 봤다.

 

대부분의 경우 가상모니터는 가상데스트톱 기능을 설명한다.

 

1. 가상데스트톱

아래의 키를 사용하면 하나의 컴퓨터에 2개이상의 데스트톱 처럼 동작할 수 있다.

**********************************

윈도우키 + ctrl + D

윈도우키 + ctrl + 좌우 화살표

윈도우키 + ctrl + F4

윈도우키 + tab

**********************************

위의 키를 모두 기억할 필요 없이 '윈도우키+tab'을 하고 마우스로 컨트롤하면 된다.

 

'윈도우키 + tab' 을 누르면 나오는 화면

이 기능은 내가 찾는 기능이 아니라서 조금 더 찾아보다가 아래 사이트와 파일을 발견했다.

 

2. 가상모니터

usbmmidd_v2.zip
0.19MB

https://www.amyuni.com/forum/viewtopic.php?t=3030

 

Activating a Secondary Display on Windows 10 when no Monitor is Connected - Amyuni Technologies

The Amyuni USB Mobile Monitor allows you to connect your Android mobile phone or tablet to your PC or Linux device with a simple USB Cable. All that is required is the download of the USB Mobile Monitor App on your device and the installation of the USB Mo

www.amyuni.com

영어되어 있지만 간단하게 옮기면

1. 압축파일을 푼다.

2. 'License.txt'를 반드시 읽는다.

3. 관리자권한으로 cmd를 실행해서 압축파일을 푼 폴더로 이동한다.

4. 프로그램을 설치한다.

>deviceinstaller64 install usbmmidd.inf usbmmidd

 프로그램 설치가 잘 되었는지 확인한다.

 

5. 가상모니터를 추가한다.

>deviceinstaller64 enableidd 1

디스플레이 설정에서 모니터가 추가된것을 확인한다.

 

 

6. 가상모니터를 삭제한다.

>deviceinstaller64 enableidd 0

디스플레이 설정에서 모니터가 삭제된것을 확인한다.

 

*32비트의 경우는 deviceinstaller64 대신 deviceinstaller를 사용한다.

'IT관련 지식들' 카테고리의 다른 글

QT 코딩  (0) 2022.11.07
우분투 명령어  (0) 2022.11.07
우분투 18.04 qt설치  (0) 2022.01.14
우분투 18.04 실행 USB 만들기  (0) 2022.01.14
우분투 DNS서버 설정  (0) 2021.11.17
posted by 동글동글82
:
IT관련 지식들 2022. 1. 14. 11:22

 우분투에서 qt로 프로그램을 할 수 있도록 환경 설정

 

1. qt 5.14.2를 다운로드.

- 이후 버전은 *.run 파일 하나가 아니라 패키지 여러개를 설치해야한다.

- 하나의 파일만 설치하는 가장 높은 버전을 설치했다.

 

파일 다운로드를 하려면 로그인을 해야 된다. 그래서 wget 명령어로 다운로드 한다.

 

wget http://www.download.qt.io.archive/qt/5.14/5.14.2/qt-opensource-linux-x64-5.14.2.run

 

2. 컴파일을 위한 패키지를 설치

sudo apt-get install build-essential
sudo apt-get install qt5-default


3. 파일을 실행

- 실행 권한 추가 후 프로그램 실행.

sudo chmod +x qt-opensource-linux-x64-5.14.2.run
./qt-opensource-linux-x64-5.14.2.run

 

- Qt Account를 입력해야함. (낮은버전도 입력해야 다음으로 넘어감)

- qt관련 설치내용을 전부 선택함. 내용에 맞춰서 필요한 것만 설치해도 됨.

 

4. 프로그램 실행

posted by 동글동글82
:
IT관련 지식들 2022. 1. 14. 11:21

1. 이미지 다운로드

우분투 다운로드 페이지

 

Download Ubuntu Desktop | Download | Ubuntu

Ubuntu is an open source software operating system that runs from the desktop, to the cloud, to all your internet connected things.

ubuntu.com

카카오 미러 사이트

 

https://mirror.kakao.com/

CTAN http(s) Comprehensive TEX Archive Network 24 hours

mirror.kakao.com

 

카카오톡 미러 사이트에서 다운받으면 좀 더 빠르게 받을 수 있다.

 

카카오 미러 사이트

 

 

2. 부팅이미지 생성 프로그램 다운로드

부팅이미지 생성 프로그램 다운로드

 

Rufus - 간편하게 부팅 가능한 USB 드라이브 만들기

간편하게 부팅 가능한 USB 드라이브 만들기 Rufus는 USB 메모리 및 플래시 드라이브를 포맷하고 부팅할 수 있도록 만드는 도구입니다. 이 프로그램은 다음 상황에서 유용하게 사용할 수 있습니다:

rufus.ie

 

 

3. USB에 부팅이미지 생성

 

posted by 동글동글82
:
IT관련 지식들 2021. 11. 17. 09:13

우분투에서 ip를 설정하는 명령어는 ifconfig이고 사용법이 어렵지 않다. 그런데 DNS서버를 설정하는 명령어는 nslookup인데 생각보다 사용법이 어렵다.

 

우분투 UI 우측 상단에 네트워크를 설정하는 버튼이 있다.

 

저 위/아래 화살표를 누르고, 이 후 edit connections를 누르고 현재 사용하는 네트워크를 선택하면 윈도우의 네트워크 설정과 비슷한 화면을 볼 수 있다. 

여기서 dns서버 주소를 변경하면 된다.

실제 적용하려면, 네트워크를 한번 껏다가 켜야하고 네트워크만 껏다켜서 적용되지 않으면 os를 껏다가 키면 적용된다.

posted by 동글동글82
:
IT관련 지식들 2021. 6. 18. 15:04

1. 깃랩 주소에 접근(ID/PW 입력)

2. 첫화면(새프로젝트<New project> 버튼 클릭)

3. 새로운 프로젝트 생성(제목, 설명, 레벨, 초기화옵션 설정)

4. 생성된 프로젝트의 초기화면

-clone클릭하면 링크 복사 가능

5. 프로젝트에 멤버 추가(프로젝트 셋팅 ->  Settings -> members ->"Invite member")

6. 클론 성공

7. 파일복사 후 add

8. Commit & Push

9. 이후 코드 수정이 되면 commit & push. 다른 사람이 수정한 내용을 받아오려면 pull명령으로 동작시킴.

 

6-1. 기존에 작업중이던 폴더와 연결

>git push origin master http://주소:포트 --force

commit의 시점이 맞지 않는다고 해서 --force 옵션을 적용해야 한다. 따라서 git bash를 실행해서 명령을 실행.

 

7-1. 프로젝트 홈페이지에 접속하여 업데이트 내용 확인.

 

posted by 동글동글82
:
IT관련 지식들 2021. 4. 30. 12:35

우분투에서 깃을 사용하다가 HDD가 깨지는 바람에 자료가 다 날라갔다. 이것저것 알아보다가 회사에서 가지고 있던 시놀로지 나스가 있어서 여기에 깃 서버를 설치하기로 했다.

 

1. 깃 서버 설치 및 기본 설정

1-1. 깃 서버 설치

설치된 화면이지만, '모든 패키지'에서 git으로 검색하면 'Git Server'를 쉽게 찾을 수 있다. '설치'버튼을 누르면 수동설정 없이 자동으로 설치를 완료한다.

 

1-2. ssh 서비스 활성화

ssh서비스를 활성화 하고, 보안을 위해 기본포트 22에서 숫자를 변경한다. 저기 밑줄에서 보듯 만약 ssh를 사용하려면 계정이 Administrators 그룹에 속해야 한다. 그리고 계정이 Administrators를 가진다면 ssh로 접근하여 무엇이든 변경할 수 있다. 만약 내부 보안을 지켜야 한다면 ssh를 통한 git 설정은 건너뛰고 GitLab 설치부터 보시길 권한다.

 

1-3. 사용자 홈 서비스 활성화

사용자 홈 서비스를 활성화 한다. 대여섯개의 사이트를 돌아다니며 필요하다고 한 설정을 다 한것이라 이걸 왜 해야하는지는 아직 정확하게 이해하지는 못했다.

 

웹으로 접속해서 하는 내용들이라 따라하기가 어렵지 않다.

 

2. 깃 레포지토리 생성

 레포지토리 초기화를 하고 클론을 해야 하는데 이걸 어떻게 시작해야하는지 몰라 구글에게 '시놀로지 나스 깃 설정'이란 검색어로 검색을 했다.

 

2-1. ssh로 접근

터미널을 통해 서버에 접속한다. 저는 putty를 사용했습니다. 생성한 ID/PW가 있으면 ID/PW를 입력하여 접속합니다. 생성한 것이 없다면 관리자 권한으로 접속합니다.

 

2-2. 폴더 생성 및 초기화

초기화 할 폴더를 생성하고 깃 초기화를 적용합니다.

 

cd /var/services/homes/gituser

==> 저장소를 생성할 위치로 이동. '/volume2/homes/gituser'로 이동해도 경로가 같다.

mkdir testGit

cd testGit

==> 폴더생성

==> 폴더로 이동

git init --bare

==> 깃 초기화

cd..

chown -R gituser:user testGit

==> 폴더 이동 후 폴더 내 파일의 권한 변경.  chown명령에 권한이 없다고 하면, sudo 를 앞에 붙인다.

 

3. 윈도우에서 tortoiseGit으로 접속.

tortoiesGit설치 (여기에서 다운로드)

설치는 원하는 폴더로 이동

우클릭하여 git->clone을 선택

경로는 ssh://gituser@192.168.1.2:22/var/services/homes/gituser/testGit

경로에 대해 간단히 설명하면 "ssh://유저ID@서버IP:서버포트 경로"

우분투에 설치했던 git에서는 ssh://를 생략했는데, 이부분을 쓰지 않아서 하루정도 고생했다.

 

다시 한 번 이야기하지만, 이 경우에는 시놀로지 나스의 보안정책에 의해 gituser란 사용자가 관리자 그룹에 속해야 한다. 이는 사용자가 ssh로 접속하거나, 웹으로 접근해서도 관리자 권한을 가지고 있기 때문에 보안에 취약해진다. 개인이나 소그룹의 경우는 괜찮지만, 기업이나 여러명이 접속해야하는 경우에는 아래의 Git Lab을 사용하길 추천한다.

 

4. Git Lab설치

4-1. 패키지 설치

시놀로지 웹으로 접속해서 패키지 센터에 접근하면, Git Lab이 있다. 설치를 누르면 도커(docker)에 설치를 하고 추가로 필요한 프로그램을 자동으로 설치한다. 설치를 하면서 필요한 설정들이 있는데 대부분 직관적으로 무슨 의미인지 알 수 있는 값이다. 혹시 이 과정에서 모르는 설정값이 많다면 구글에서 '시놀로지 나스 깃 랩 설정'으로 찾아서 화면 캡처가 많은 페이지를 참고하기 바란다.

 

4-2. 도커에서 확인

synology_gitlab을 설치했더니, postGresql과 redis란 컨테이너를 추가로 설치한다.

 

4-3. 접속 포트 확인

도커에서 컨테이너 -> synology_gitlab 우클릭 -> 세부사항을 누르면 위의 사진처럼 뜬다. 왼쪽 아래에 포트설정에 표시된 로컬포트를 기억한다.

 

5. Git Lab 접속 및 초기설정

5-1. Git Lab 웹페이지 접속

웹브라우저에서 'http://192.168.1.2(서버IP):30000(접속포트)'로 접속하면 접속화면이 나온다. 최초 접속시 비밀번호를 입력하는 화면이 나오고, 이 비밀번호와 초기 아이디(root)로 접속할 수 있다.

 

5-2. 프로젝트 생성

 

초기화면이 위와 같이 나오면 'Create a project'를 눌러 새로운 프로젝트를 만든다.

 

Project name

    -빈 프로젝트를 만들면서 프로젝트 이름을 적는다.

Project URL

    -프로젝트의 URL은 자동으로 생성된다. 

Project description

    -프로젝트의 설명을 간단히 적는다.

Visibility Level

    -직역을 해서 적어보기는 하는데, public을 하는게 제일 편하고, private를 선택해서 ssh key까지는 등록해봤다.

    -private : 접속에 권한이 필요하다. ssh key등록 등의 절차가 필요하다.

    -internal :  로그인한 사용자만 접속이 가능하다.

    -public : 권한 없이 접속이 가능한다.

Initaialize repository with a README

    -클론으로 저장소를 받은 후 push할 때, 데이터가 안 올라가는 경우가 있다. 정확한 원리는 잘 모르지만, 이 항목을 선택하면 데이터가 올라간다.

 

깃랩의 초기설정과 기능에 대해서는 조금 더 확인하고 검토 후 추가하고자 한다.

 

posted by 동글동글82
:
IT관련 지식들 2020. 4. 24. 17:11

먼저 Visual Studio Code를 다운받아 설치한다.

 

이후 파이썬을 사용하기 위해서 아래 블로그를 참조했다.

 

https://evols-atirev.tistory.com/31

 

Visual Studio Code Python 사용법

Visual Studio Code 상에서 파이썬 코드를 실행시키고 디버깅하는 방법에 대한 글이다. 우선 파이썬과 Vscode를 설치해준다. Vscode의 설치는 https://evols-atirev.tistory.com/4를 참고해서 설치해준다. Python..

evols-atirev.tistory.com

1. Visual Stdio Code 실행

 

2. open folder선택. 작업을 진행할 폴더를 선택한다.

3. 작업을 진행할 폴더에 새로 파일을 입력한다. (여기서는 helloWorld.py)

- 만약, Visual Studio Code에 Python이 설치되거나 연결되지 않았으면 설치하라는 메시지가 나온다.

- 안내 메시지에 따라 설치하면 된다.

4. 디버깅을 위해 run(F5)를 동작한다.

- launch.json파일을 자동으로 생성해준다.

- 위에 링크된 블로그에서 미리 작성한 코드가 있어 "작업폴더\.vscode"에 task.json과 setting.json 파일을 복사해 넣었다.

4-1. tasks.json

-아래와 같이 작성한다.

{

    // See https://go.microsoft.com/fwlink/?LinkId=733558

    // for the documentation about the tasks.json format

    "version""2.0.0",

    "tasks": [

        {

            "label""python3",

            "type""shell",

            "command":"python",

            "args":["${file}"],

            "group":{

                "kind":"build",

                "isDefault":true

            },

            "presentation":{

                "echo":true,

                "reveal":"always",

                "focus":false,

                "panel":"shared",

                "showReuseMessage":true,

                "clear":true

            }

        }

    ]

}

4-2. setting.json

- 파이썬 실행파일이 설치된 위치를 찾아서 넣어준다.

{

    "python.pythonPath""E:\\Microsoft Visual Studio\\Shared\\Python37_64\\python.exe"

}

 

5. run(F5)를 다시 동작한다.

- Debug Configuration으로 Python File을 선택한다.

- 밑에 콘솔창에서 결과를 볼 수 있다.

posted by 동글동글82
: