[질문] tar, gzip 코드에서 사용하기

paeksj98의 이미지

환경은 qte3.3 크로스 컴파일 해서 단만기에 올리는 환경입니다.

qt3으로 만들고 있는 소스에서 tar.gz파일을 압축을 푸는 부분을 구현하려고 합니다.
소스단에서 크게 제어할건 없고 압축을 풀때 실패할경우 메시지만 가져와서 디스플레이 해주면됩니다.

제가 지금 하고 있는 방법이 tar소스를 직접 가져다 쓰려고 크로스컴파일도 하고 이것 저것 해보니 잘되는것 같아서 이번에는 qt쪽 소스에 포함해서 하려고 하니 소스 양이 너무 방대해서 힘이 드네요.

tar.gz파일을 decompress만 하고, 실패일경우 실패 메시지만 가져오면 되는데 이런경우 어떻게 처리를 하는게 쉽게 접근이 가능할지 질문드립니다.
몇일을 이것 저것 가져다 해보고 있는데 좋은 방법을 아직 못찾았습니다.

혹시 아시는 부분이 있으시면 조언좀 부탁드립니다.

klara의 이미지

보통 압축해제 알고리즘을 구현한 코드에는 플랫폼의존적인 코드가 거의 없을텐데요...
어떤게 힘들다는 뜻인지 구체적으로 질문하셔야 할듯합니다.

paeksj98의 이미지

파일양도 방대하고 Makefile파일도 복잡해서 이걸 qt makefile로 옮기기하 힘이드네요.
지원하는 플랫폼도 많아서 디파인 처리가 된게 엄청 많은데 제 환경에 맞는게 어떤건지도 모르는게 너무 많네요.
제가 생각하던 방법은 쉽게 구현된게 있으면 그걸 가져다가 응용하려고 했는데 버전업이 많이 되서 그런지 내부가 복잡해서 방향을 못잡고 있습니다.

제가 생각하면 이상적인 방법은 tar을 그대로 qt에서 make할수 있도록 makefile을 만드는건데 이게 너무 힘이 드네요.

klara의 이미지

기존의 작성한 부분을 라이브러리로 만드셔서 따로 컴파일하고 링크하는게 제일 간단해 보입니다.

paeksj98의 이미지

혹시 도움 되는 사이트 한군데 추천 해주실수 있는지..??
답변 감사합니다.

klara의 이미지

정적 라이브러리라면 만드는건 그다지 어렵지 않습니다.
개개의 소스 파일을 오브젝트 파일로 컴파일한후에 ar로 묶어주면 됩니다.
구글에서 '라이브러리 만들기'로 찾아보시면 많이 나올듯하네요.

라이브러리만들기가 어려우시거나, 꼭 하나의 실행파일만으로 작성해야할 필요가 없다면 별도의 프로세스로 실행하는 방법도 있습니다.
기존의 압축해제하는 실행파일을 따로 만들고, QProcess를 이용해서 실행하고 실행 결과나 stdout, stderr를 읽어올 수 있습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.