VisualStudio 에서 만든 .lib파일을 mingw에서 사용시 Warning: .drectve 오류

rlj1202의 이미지

PortableDeviceApi.h 와 PortableDevice.h 헤더파일에는 visual c++ 컴파일러만 인식하는 메크로 (/##/ 같은?) 등이 있어서 gcc에서는 사용이 불가하다고 하여 비주얼 스튜디오 에서 lib형태로 만들어서 가져온 뒤 사용해보기로 했습니다.

제작한 lib을 사용하려고 하면 다음과 같은 오류를 내놓습니다.

# command-line-arguments
Warning: .drectve `/FAILIFMISMATCH:"_CRT_STDIO_ISO_WIDE_SPECIFIERS=0" /DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" ' unrecognized
Warning: corrupt .drectve at end of def file
Warning: .drectve `/DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" ' unrecognized
# command-line-arguments
Warning: .drectve `/FAILIFMISMATCH:"_CRT_STDIO_ISO_WIDE_SPECIFIERS=0" /DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" ' unrecognized
Warning: corrupt .drectve at end of def file
Warning: .drectve `/DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" ' unrecognized

인터넷 검색 결과 비주얼 스튜디오에서 #pragma comment(linker, "/DEFAULTLIB: uuid.lib") 같은걸 임의로 추가한다고 하는데 이는 또 visual c++ 링커만 알아듣는 거라고 하네요. /NODEFAULTLIB이라는 옵션을 주었슴에도 같은 오류가 계속 발생해서 질문 드립니다.

WindowsSDK에 있는걸 쓰려면 마소의 굴레에서 벗어날 수 없는건가요...!

shint의 이미지

//
원하시는 내용은 구글과 네이버에서 검색해보니. 여러가지 컴파일 하는 방법이 있었습니다.
vs lib mingw compile
PortableDeviceApi.h
Warning: .drectve `/DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" ' unrecognized
Warning: .drectve `/FAILIFMISMATCH:"_CRT_STDIO_ISO_WIDE_SPECIFIERS=0" /DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" ' unrecognized

//
MSC_VER 확인
예전. 플랫폼 SDK 사용 가능한지 확인
윈도우7 8 10 SDK 확인
각 DLL 과 LIB 와 Header 확인 (컴파일 할때. lib 와 header 파일의 폴더경로. 참조 순서'도 중요합니다.)

되도록이면. 잘 되는 예제를 사용하시면 성공하기 좋습니다.
컴파일에 성공했다고 하더라도. 오류가 발생할 수 있으니 주의해야 합니다.
운영체제를 2가지 모두 사용하는 방법도 있습니다. (VirtualBox 나 원격 PC 등등...)
데브피아'에도 문의 해보세요.

//
이거로 찾아보니. DevC++과 CodeBlock 등에 내용이 보입니다. 별 내용은 안보이네요.
.drectve
drectve unrecognized

//
CMake 프로그램을 사용하시면. 리눅스 소스를 윈도우에서 컴파일 하기 편하게 프로젝트 파일을 생성해주기도 합니다.

//
다른 방법이 있다면... 컴파일 안하고. 되있는거. 통신으로 편하게 해도 됩니다.
윈도우 WMI 서비스에 기능을 VBScript 등으로 제어할 수 있습니다.
ActiveX OCX 파일로 생성해서 MFC 나 VB 혹은 IE. Javascript 등에서 사용이 가능합니다.
Qt 에서도 OCX 파일을 붙여서 사용할 수 있을 겁니다. 요즘은 QML이 여러가지 면에서 인기입니다.
regsvr32 와 regasm 등에 사용 방식이 다를 수 있으니. 확인이 필요합니다.
Qt 에서도 msvc 로 컴파일이 가능합니다.
VC 의 컴파일러 버전. DLL과 Lib 종류. 정적. 동적. x86. x64. 윈도우 버전. 멀티스레드. 디버그. 릴리즈. 등을 확인해보시기 바랍니다.
.exe 프로세스 파일로 생성해서 도스 명령어 인자값으로 사용이 가능합니다.
IPC 및 데이터 통신으로 사용이 가능합니다.
C 와 C++ 의 extern 사용방식을 확인해보시기 바랍니다.
C 와 Java 를 서로 모듈로 사용해 볼 수 있습니다.
flash 와 flex 등을 활용하는 방법도 있습니다.
Cygwin 등을 활용하는 방법도 있습니다.

//
네이트온'으로 문의 주시면. 원격 제어로 확인해드릴 수 는 있습니다.
shintx@nate.com

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

Anti-Lock의 이미지

Warning은 경고입니다. 오류(Error)는 아닙니다.
그래서 링크가 실패하셨나요? exe 파일의 동작이 이상한가요?
나름쓸만하다고 생각하면 경고는 무시할 수도 있습니다.(이건 다르게 생각하시는 분도 계실것 같습니다만..)

rlj1202의 이미지

Process finished with exit code -1073741819 (0xC0000005)

이런 오류를 뿜고 종료되었습니다.

여유롭고파의 이미지

http://blog.tcltk.co.kr/?p=1269

여기보시면 vc용 lib를 gcc용 def랑 a파일로 변환하는 법이 있네요

댓글 달기

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