Programming/C Win32 MFC2015. 4. 13. 16:42

찾아는 봐도 이런것 관련 내용은 아직인데..

현상으로만 봐서는..

#ifdef 와 #if defined () 가 동일한 의미이고

#ifdef () 는 다른 의미로 사용이 가능한게 아닐까 생각된다.


  1 #define TEST

  2 #ifdef TEST

  3 #warning TEST test

  4 #endif

  5

  6 #ifdef (TEST)

  7 #warning (TEST) test

  8 #endif

  9

 10 void main()

 11 {

 12         return 0;

 13 }


$ gcc test.c

test.c:3:2: warning: #warning TEST test [-Wcpp]

test.c:6:8: error: macro names must be identifiers

test.c: In function ‘main’:

test.c:12:2: warning: ‘return’ with a value, in function returning void [enabled by default] 


[링크 : https://gcc.gnu.org/onlinedocs/gcc-3.0.2/cpp_4.html]

[링크 : https://gcc.gnu.org/onlinedocs/cpp/Ifdef.html]



+

에러를 보니.. identifier.

간단하게 식별자로 ()가 들어갈 수 없는데 ( 부터 식별자로 인식을 해버리는 것으로 생각된다.

즉.. #ifdef {A-Za-z0-9_} 라고 정의가 되려나?

#define과는 다르게 #ifdef에서는 ()를 쓸수가 없다! 가 결론일듯

'Programming > C Win32 MFC' 카테고리의 다른 글

inline 함수..  (0) 2015.05.12
혼돈의 카오스 - 교차참조 헤더  (0) 2015.05.11
winUSB / win32 physical drive  (0) 2014.12.23
printf POSIX 확장 %1$d  (0) 2014.12.09
include guard  (0) 2014.11.05
Posted by 구차니
Programming/qt2015. 2. 24. 18:04

qt에서 qml을 통해 다국어를 지원하는 방법


ts 파일은 qml에서 스캔해서 메시지 파일을 생성하고

qtcreator를 통해

ts를 qm 파일로 컴파일 한다.





웬지.. poedit에서 po를 mo로 바꾸는 기분이야...


[링크 : http://qt-project.org/doc/qt-4.8/linguist-manager.html]

[링크 : http://qt-project.org/doc/qt-4.8/linguist-translators.html]

[링크 : http://qt-project.org/doc/qt-4.8/linguist-hellotr.html]

'Programming > qt' 카테고리의 다른 글

qt5 fb reset  (0) 2021.02.23
qt framebuffer에 출력하기  (0) 2021.02.09
qt 5.3 cross compile 조사  (0) 2015.01.21
qt 4.x/5.x INSTALL_PATH  (0) 2015.01.20
qt font path  (0) 2015.01.20
Posted by 구차니

정적분석은 코드 레벨에서 오류를 분석하는 것이고

동적분석은 실행 렙레에서 오류를 분석하는 것이다.


굳이 비유하면..

Syntax high-light 가 일종의 정적분석 툴이 될 수도 있는 거고(물론 더 세밀한 룰을 통해 버퍼 깨지는 문제등 까지 찾아 주지만)

junit과 같은 녀석을은 동적분석 툴이 될 수 있다


[링크 : http://en.wikipedia.org/wiki/Static_program_analysis]

[링크 : http://en.wikipedia.org/wiki/Dynamic_program_analysis]



대개는 상용툴로 나온녀석이라 가격도 후덜덜하다.

[링크 : http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis]

[링크 : http://www.stroustrup.com/JSF-AV-rules.pdf]

[링크 : http://en.wikipedia.org/wiki/QA-C]

[링크 : http://en.wikipedia.org/wiki/MISRA_C]

Posted by 구차니
Programming/php2015. 2. 2. 11:59


IE는 잘되는데 크롬은 안되서 이래저래 검색중




[링크 : http://en.wikipedia.org/wiki/Chunked_transfer_encoding]

[링크 : http://coffeenix.net/board_view.php?bd_code=1280]

[링크 : https://www.fir3net.com/Networking/Protocols/http-what-does-transfer-encoding-chunked-mean.html]

'Programming > php' 카테고리의 다른 글

php 구버전 post 변수.  (0) 2016.10.10
php hiphop  (0) 2016.07.14
PHP 웹 다국어 지원 트릭  (0) 2015.02.02
php 콘솔 디버깅  (0) 2015.01.13
php simpleXML saveXML 정렬하기 (well-formed XML)  (0) 2014.12.23
Posted by 구차니
Programming/php2015. 2. 2. 10:51

define으로 변수를 지정해서 include 하는건 지금사용하는 방법과 같지만

lang[] 이라는 어레이를 이용하니

이게 변수인지 문자열인지 조금은 더 잘 구분이 되니 쓸만해 보이는 방법




'Programming > php' 카테고리의 다른 글

php hiphop  (0) 2016.07.14
php chunked encdoing  (0) 2015.02.02
php 콘솔 디버깅  (0) 2015.01.13
php simpleXML saveXML 정렬하기 (well-formed XML)  (0) 2014.12.23
php simpleXML  (0) 2014.12.22
Posted by 구차니
Programming/C++ STL2015. 1. 26. 10:19

static_cast

dynamic_cast

reinterpret_cast

const_cast


c++에서 추가된 형변환 연산자로

c의 명시적 형변환은 유사성이 없는 자료간에도 형변환이 되어 논리오류가 발생할 수 있기 때문에

이러한 문제를 최소화/억제하기 위해 사용을 하지 않도록 권장하고

새로운 형 변환 연산자를 사용하도록 강조한다.


[링크 : http://warmz.tistory.com/881]

'Programming > C++ STL' 카테고리의 다른 글

const 멤버 변수 초기화(member variable initializer)  (0) 2016.06.22
std::endl  (0) 2015.06.24
functor / 펑터  (0) 2014.04.16
cpp static 변수 및 메소드  (0) 2014.03.18
cpp scope 연산자  (0) 2014.03.18
Posted by 구차니
Programming/qt2015. 1. 21. 22:12

... 맨날 조사만 하네..


./configure -release -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=$TOOLCHAIN/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- -sysroot $ROOTFS -prefix /usr/local/qt5


./configure -platform linux-clang

./configure -platform linux-g++

./configure -platform linux-g++-32


[링크 : http://doc.qt.io/qt-5/configure-options.html]


Embedded Platforms


You can develop with Qt for the following embedded platforms:


Embedded Android

Embedded Linux

Windows Embedded (Compact and Standard)

Real-Time Operating Systems, such as QNX, VxWorks and INTEGRITY


[링크 : http://doc.qt.io/qt-5/supported-platforms.html]


./configure -release -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=$TOOLCHAIN/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- -sysroot $ROOTFS -prefix /usr/local/qt5


LinuxFB

This plugin writes directly to the framebuffer. Only software-rendered content is supported. Note that on some setups the display performance is expected to be limited.

The linuxfb plugin allows specifying additional settings by passing them in the QT_QPA_PLATFORM environment variable or -platform command-line option. For example, QT_QPA_PLATFORM=linuxfb:fb=/dev/fb1 specifies that the framebuffer device /dev/fb1 should be used instead of the default fb0. Multiple settings can be specfified by separating them with a colon.


Input

When no windowing system is present, the mouse, keyboard and touch input are read directly via evdev or using helper libraries like tslib. Note that this requires that devices nodes /dev/input/event* are readable by the user. eglfs has all the evdev input handling code built-in, while linuxfb relies on the traditional and somewhat limited -plugin command-line parameters.


Input on linuxfb

To enable keyboard, mouse, touch or tablet support with linuxfb, pass QT_QPA_GENERIC_PLUGINS=evdevkeyboard,evdevmouse,evdevtouch,... in the environment or, alternatively, -plugin evdevkeyboard, -plugin evdevmouse, -plugin evdevtouch, or -plugin evdevtablet on the command-line. Most of these can take a device node parameter, for example QT_QPA_GENERIC_PLUGINS=evdevmouse:/dev/event1, in case the Qt's automatic device discovery (based either on libudev or a walkthrough of /dev/input/event*) is not functional or misbehaving.


[링크 : http://doc.qt.io/qt-5/embedded-linux.html]


'Programming > qt' 카테고리의 다른 글

qt framebuffer에 출력하기  (0) 2021.02.09
qt - ts / qm  (0) 2015.02.24
qt 4.x/5.x INSTALL_PATH  (0) 2015.01.20
qt font path  (0) 2015.01.20
qt websocket support  (0) 2015.01.20
Posted by 구차니
Programming/qt2015. 1. 20. 10:42



Usually, to cross-compile autotools-based packages, one do:

./configure --prefix=/usr --host=arm-linux-gnueabi

make

make DESTDIR=/embedded/target install

make DESTDIR=/embedded/staging install


You typically install things twice because in /embedded/target you want

to have only the files useful for execution, completely stripped, while

in /embedded/staging you want to keep all debugging symbols to help in

debugging. /embedded/target goes in your target embedded system,

while /embedded/staging is kept on your development machine, and is

used to build more applications and to do remote debugging.


Within Qt5, this could be translated as:


./configure -prefix /usr -device <something>

make

make INSTALL_ROOT=/embedded/target install

make INSTALL_ROOT=/embedded/staging install


But Qt5 has host utilities, not only tools for the target. And instead

of having to build Qt twice, it nicely allows to do the build of host

tools and target libraries in just one build, which is really nice. So,

one typically does:


./configure -prefix /usr -hostprefix /embedded/host -device <something>

make

make INSTALL_ROOT=/embedded/target install

make INSTALL_ROOT=/embedded/staging install


Unfortunately, the INSTALL_ROOT does not only impact target libraries,

but also the host utilities. So they end up

in /embedded/target/embedded/host which obviously isn't correct.


For the moment, I am solving this by doing:


./configure -prefix /usr -hostprefix /embedded/host -sysroot /embedded/staging -device <something>

make

make install


[링크 : http://lists.qt-project.org/pipermail/interest/2013-January/005447.html] 


4.7 에서 hostprefix로는 안되었고

make INSTALL_ROOT install을 통해서 했다는 건데..

-hostprefix, but it doesn't work like I hoped. With "make install INSTALL_ROOT=..." it will install everything even the host tools under this install root


[링크 : http://www.qtcentre.org/.../30449-How-to-build-and-install-Qt-apps-on-cross-compiled-embedded-targets] 

'Programming > qt' 카테고리의 다른 글

qt - ts / qm  (0) 2015.02.24
qt 5.3 cross compile 조사  (0) 2015.01.21
qt font path  (0) 2015.01.20
qt websocket support  (0) 2015.01.20
xquery / qt  (0) 2015.01.19
Posted by 구차니
Programming/qt2015. 1. 20. 10:32

크로스 컴파일로 하는 바람에

prefix를 잘못 붙여서 QT에서 rootfs 경로 포함하여 찾는 바람에 헤매는데..

configure 옵션을 조금더 찾아 봐야 편하게 쓸 수 있을듯..



아무튼 환경변수는 QT_QWS_FONTDIR 로 정해줄수 있으며

:를 이용해 여러개의 디렉토리를 지정해 줄 수 는 없다.


export QT_QWS_FONTDIR=/usr/local/Qt/lib/fonts

[링크 : http://qt-project.org/forums/viewthread/30575]

'Programming > qt' 카테고리의 다른 글

qt 5.3 cross compile 조사  (0) 2015.01.21
qt 4.x/5.x INSTALL_PATH  (0) 2015.01.20
qt websocket support  (0) 2015.01.20
xquery / qt  (0) 2015.01.19
qt 4.8.5 neon / cross compile  (0) 2015.01.15
Posted by 구차니
Programming/qt2015. 1. 20. 09:10

2009년도에 추가 되어 있어서

4.8.5 버전에 흔적은 남아있는데 활성화 할 방법을 찾지 못해 쥐쥐..

[링크 : http://trac.webkit.org/changeset/46021]

[링크 : https://bugs.webkit.org/show_bug.cgi?id=27206]


릴리즈 노트에서는 Qt5.3 에서 web socket언급이 나온다.

[링크 : http://qt-project.org/qt5/qt53]

[링크 : http://blog.qt.digia.com/blog/2014/05/20/qt-5-3-released/]


websocket class 니까.. webkit 브라우저에는 상관없는건가?

[링크 : http://doc.qt.io/qt-5/qwebsocket.html]

'Programming > qt' 카테고리의 다른 글

qt 4.x/5.x INSTALL_PATH  (0) 2015.01.20
qt font path  (0) 2015.01.20
xquery / qt  (0) 2015.01.19
qt 4.8.5 neon / cross compile  (0) 2015.01.15
qt 4.8.5 neon 활성화 하기  (1) 2015.01.15
Posted by 구차니