[초보]라이브러리 파일을 만들려고 합니다.

hongyi의 이미지

구조체 통신을 하고 있는데, 구조체를 헤더 파일로 만들어서 클라이언트와 서버가 서로 주고 받고 있습니다. 확장성을 높이기 위해서 LIB파일로
만들려고 하는데, 어떻게 해야 할지 갈피를 못 잡고 있습니다.

divetou의 이미지

LIB는 윈도우에서 사용되는 정적 라이브러리 파일로 알고 있습니다.

리눅스에서 정적 라이브러리 파일은

.a 라는 파일로 만들게 되죠.

ar 이라는 명령으로 오브젝트 파일들의 아카이브를 만들어주고,

ranlib 라는 명령으로 만든 아카이브레 라이브러리 인덱스를 만들어주면

간단하게 정적 라이브러리 파일을 만드실수 있으실 겁니다.

정리하자면,

gcc -c xxx.c

ar rcv mylib.a xxx.o

ranlib mylib.a

와 같이 만드시면 됩니다.

더 자세한것은 kldp에서 Program-Library-HOWTO 라는 문서를 한번 찾아보세요.

==============================
꿈꾸는소년

choissi의 이미지

패킷이라면,,,

동적으로 패킷을 정의 하는게 아니라면,,
구조체로 정의한 것일텐데
.h 가 lib에 포함 되는 것은 아니지요..

그냥 .h로 include 하는 것으로 간단히 해결 될듯 합니다.

울랄라~ 호기심 천국~!!
http://www.ezdoum.com

cinsk의 이미지

saxboy의 이미지

음... 스레드와는 좀 관계가 없는 얘기지만...
절대로 구조체를 통째로 소켓에 보내지 마세요!

mastercho의 이미지

-_-; 구조체로 안하면 class로 하라는 말씀이신가요?

전 패킷을 class로 보내고 있는데

구조체나 class로 하는게 가장 편하지 않은지요?
왜 그런말씀을 하셧는지 궁금하네요

승자는 자기보다 우월한 사람을 보면 존경심을 갖고 그로부터 배울 점을 찾지만 패자는 자기보다 우월한 사람을 만나면 질투심을 갖고 어디 구멍난 곳이 없는지 찾는다.
- 하비스

saxboy의 이미지

구조체에 들어가는 패딩때문에 서버나 클라이언트 둘중 하나가 다른 플랫폼으로 옮겨가면 제대로 작동하지 않을 가능성이 높아지지요.

mastercho의 이미지

패딩에 대한 이해가 충분하면 문제가 없지 않나요?

32비트 컴퓨터에서는

저 같은 경우 아예 모든걸 4바이트 단위로 끊어 맞춰

구조체나 클래스를 작성하거든요

승자는 자기보다 우월한 사람을 보면 존경심을 갖고 그로부터 배울 점을 찾지만 패자는 자기보다 우월한 사람을 만나면 질투심을 갖고 어디 구멍난 곳이 없는지 찾는다.
- 하비스

westin의 이미지

C언어만으로 프로그램을 작성하시면 (대부분의 경우에)문제 없을것 같구여.. 자바, PHP, 비절베직 기타 등등 어떤 언어로 만든 어플리케이션이라도 통신가능하게 하려면 구조체나 클래스를 사용하지 마세여..

girneter의 이미지

그럼 구조체를 보낼 때 어떻게 해야 하는거죠?

예를 들어서
struct aaa {
int a;
char b;
}

이런걸 주고받을 때 일부러

struct aaa {
int a;
char b;
char dummy1;
char dummy2;
char dummy3;
}

로 만들어서 주고 받으라는 건가요?

설명 좀 해주세요. 패딩문제가 뭔지 어떻게 피할수 있는건지.

개념없는 초딩들은 좋은 말로 할때 DC나 웃대가서 놀아라. 응?

alsong의 이미지

상관없지 않나요?
팩킹은 둘간에 통신에서 정의해야만 할것이고
필요하다면 1바이트 팩으로 처리하면 될것같고요.
바이트오더만 바꿔주면 문제 없을것 같은데요.

그나저나 백수 언제 탈출하냐... ㅡㅡ; 배고파라.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.