[질문] 라이브러리에서 함수가 선언이 않되어있다고 나올때...

익명 사용자의 이미지

안녕하세요..
지금 라이브러리를 공부하고 있는데 이상한게 하나 있어서 질문합니다.
라이브러리를 만들고 나서 main에서 라이브러리에 있는 함수를 호출하면
함수가 선언이 안되어있다고 나옵니다.
그래서 nm으로 라이브러리를 보면
00000000 T Quant__FPsTOii (호출하는 함수명은 Quant)
라고 되어있는데 T 라고 되어있으면 선언이 되어있다는 표시 아닌가요??
그런데 다른 함수를 보면 함수명만 나와있는데 위의 함수는 왜 함수명 뒤에
__FPsTOii라는게 더 붙어 있는지 알수가 없네요.
전에도 보면 함수명 뒤에 이런식으로 붙어있는것들만 함수가 선언이 안되어있다고
나오더네요.
같은 방법으로 컴파일했는데 다른 함수들은 제대로 선언이 되있고 위에 있는것처럼
되있는게 몇개 나오던데 왜 그런지요..
아시는분 답변 부탁드립니다.

익명 사용자의 이미지

아마도 C++ 이름 장식 규칙이 적용된 듯 합니다.
함수를 만들때 C++ 로 컴파일하고, C 에서 호출하진 않으셨는지요?
C++ 소스에서 C 코드를 쓰려면
extern "C" {
C 코드
}
입니다.

익명 사용자의 이미지

c++쓰시면 overloaded function들도 함 check하심이...

익명 사용자의 이미지

우선 답변에 감사드리구여..
main에서 호출하는게 2개 함수였는데 하나는 제대로 동작하고
하나가 정의가 않되어있다길래 다시 함 코드를 뒤졌봤습니다.
그러다 헤더파일에 다른거하고 같이 쓰는게 있어서
그쪽에 있는 함수를 정의해 준게 있는데 이번에 하면서
그 함수를 삭제를 했었습니다.
그러니까 헤더에는 함수가 있다고 해놓고 실제 코드에는
함수가 없었지요..
그 부분이 걸려서 혹시나 하고 헤더에서 지우고 하니까
문제가 해결되더군요...
이런게 문제가 될줄은 몰랐습니다..
그럼....

댓글 달기

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