two-sided print check를 했는데도 안되는 경우

/etc/cups/ppd/printer_name.ppd

*Defaultmanualduplex: off

로 바꾸고

*DefaultDuplex: DuplexTumble

로 바꾸고


evince에서 duplex prining이 안되는 경우

cups-manualduplex=off

cups-Duplex=DuplexNoTumble (이 설정은 필수인지 잘모르겠다. 그냥 DuplexTumble로 둬도 괜찮을 수도...)

아ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏ

ㅠㅠ 박사........나도 안하고싶다.........

'linux' 카테고리의 다른 글

turn off beep sound on linux  (0) 2018.03.22
vivado GUI xserver permission error  (0) 2018.03.22
install vivado on linux  (0) 2018.03.15
how to fix [not in the sudoers file.] error  (0) 2016.04.19
vim 명령어  (0) 2016.04.11

while vivado installing, the process stops at "generating installed device list"

turn off the vivado installing by Ctrl + c (do not cancel, then the library folder will be removed that makes you can not find the path for environment variable)


It is an error that can not load library.


To fix this, environment variable must be configured for vivado.

Find the path clang library, and configure "LD_LIBRARY_PATH"

 LD_LIBRARY_PATH="/vivado/installed/directory/path/Vivado/2017.4/lnx64/tools/clang-3.9/lib:${LD_LIBRARY_PATH}"
 export LD_LIBRARY_PATH


run installing by sudo


그다음은 실행하기 위한 환경설정

shell config file(e.g. zshrc) 에


 PATH="/bin:/usr/bin:/usr/local/bin:/usr/sbin:${PATH}"
 export PATH
 LD_LIBRARY_PATH="/home/min/workspace/vivado/Vivado/2017.4/lnx64/tools/clang-3.9/lib:${LD_LIBRARY_PATH}"
 export PATH


source /vivado/installed/directory/path/Vivado/version/settings64.sh

추가


/vivado/installed/directory/path/Vivado/version/bin/vivado file에

LD_LIBRARY_PATH="/vivado/installed/directory/path/Vivado/2017.4/lnx64/tools/clang-3.9/lib:${LD_LIBRARY_PATH}"
export LD_LIBRARY_PATH

추가


실행하면 라이브러리 관련 에러가 뜬다.

해당 경로에 라이브러리가 없거나 있어도 안맞는듯

해당 시스템의 같은 이름의 라이브러리를 소프트링크해주면 된다.

libtinfo.so.5 -> /lib/libncurses.so.5 ??????

 






'linux' 카테고리의 다른 글

turn off beep sound on linux  (0) 2018.03.22
vivado GUI xserver permission error  (0) 2018.03.22
printing duplex problem on linux  (0) 2018.03.15
how to fix [not in the sudoers file.] error  (0) 2016.04.19
vim 명령어  (0) 2016.04.11

이런 코드를 봤는데

소스 코드

#include <iostream>

class Foo {
public:
  int bar;
  Foo(int num): bar(num) {};
};

int main(void) {
  std::cout << Foo(42).bar << std::endl;
  return 0;
}

여기서 : bar(num)처럼 쓰는건 뭔가요?

저렇게 쓰는 걸 처음 봤는데 다른 함수를 호출하는 건가요? 아니면 생성자에서 쓴걸 보면 생성자랑 관련 있는 건가요?


Foo(int num): bar(num) 은 초기화 리스트라고 하고, 멤버 변수 bar를 num으로 초기화하는 역할을 합니다.

//초기화 리스트
Foo(int num): bar(num) {};

//함수에서 초기화
Foo(int num)
{
   bar = num;
}

그냥 생성자 함수{} 내에서 초기화하는 것과, 이렇게 초기화 리스트를 쓰 는것의 차이는

초기화 리스트에서 초기화를 하는 경우, 생성자가 호출될 때 객체의 생성과 초기화가 한 번에 이루어집니다.

생성자 함수 내{}에서 초기화를 하는 경우, 객체가 생성되어, default생성자로 초기화된 상태에서 다시 한 번 할당받게 하게 됩니다. 이 경우엔 default할당-유저할당의 2단계를 거치게 돼서 오버헤드가 생깁니다.

초기화 리스트를 써야만 하는 상황은 크게 다음과 같습니다

  • 클래스가 레퍼런스를 멤버로 가질 때
  • non static const멤버가 있을 때
  • default 생성자가 없을 때
  • base class를 초기화할 때
  • 생성자 파라미터의 이름이 데이터 멤버랑 같을 때(이 경우는 this를 써서 해결할 수도 있습니다)

예를 들면

class MyClass
{
    public:
        int &i; //레퍼런스 멤버. 초기화 리스트를 써야 함
        int b;
        //Non static const 멤버. 초기화 리스트를 써야 함
        const int k;  

    //생성자 파라미터의 이름이 데이터 멤버랑 같음. 초기화 리스트를 쓸수 있음(선택 가능)
    MyClass(int a, int b, int c):i(a),b(b),k(c)
    {
        /*
        초기화 리스트를 쓰고 싶지 않은 경우
        this->a = a
        같이 써야 함
        */
    }
};

class MyClass2:public MyClass
{
    public:
        int p;
        int q;
        //base class인 MyClass가 default생성자가 없기 때문에 무조건 초기화 리스트에서 초기화해줘야 함
        MyClass2(int x,int y,int z,int l,int m):MyClass(x,y,z),p(l),q(m)
        {
        }

};

int main()
{
    int x = 10;
    int y = 20;
    int z = 30;
    MyClass obj(x,y,z);

    int l = 40;
    int m = 50;
    MyClass2 obj2(x,y,z,l,m);

    return 0;
}


+ Recent posts