Makefile 기반의 프로젝트를 MSVC 기반의 솔루션/프로젝트로 어떻게 대응시키나요?

hwayak의 이미지

 
# 아래는 Makefile의 내용입니다.
all: output1 output2
    ....
 
output1: output1.o
    ....
 
output2: output2.o
    ....

Makefile이 위와 같을 때, make all을 실행하면, output1과 output2 파일이 최종 결과물로 생성됩니다.
그리고 output1과 output2는 같은 디렉토리내의 여러 소스 코드 파일을 공유합니다. 즉, 예를 들면, output1.c와 output2.c가 같이 shared.h라는 파일을 include하고 있는 것처럼 말이죠..

위와 비슷한 상황의 프로젝트가 있는데, 부득이하게 visual studio 기반의 솔루션/프로젝트 모델로 빌드 설정을 전환해야 하는데, 어떻게 매칭을 시키면 좋을지 모르겠네요..(높으신분이 mingw나 nmake같은 건 사용하지 말라고 하셔서;;)

전체 프로젝트를 하나의 '솔루션'으로 생각하고, Makefile의 각 target마다 '프로젝트'파일을 따로따로 생성해야 하나요? 즉, all이란 '프로젝트', output1이란 '프로젝트', output2란 '프로젝트'.. 이런식으로 여러개 만들어야 하는건지...(제가 알기론 visual studio에서 '프로젝트'라는 것의 아웃풋은 오직 1개만 가능하다고 알고 있어서 말이죠)
만약 이와 같이 하면... 도대체 위의 Makefile의 all 'target'과 같은 개념의 visual studio의 '프로젝트'는 어떻게 만드는건지도 모르겠네요..

아니면... 멀티플 아웃풋이 발생하는 타겟은 무조건 '솔루션'으로 만들어야 하는건지;;

어떻게 매칭시키는게 좋을까요?

klara의 이미지

바이너리(실행파일이나 라이브러리파일) 하나당 프로젝트 하나라고 생각하면 될듯합니다.
Makefile에서 target은 추상적인 개념이니까요.
목적파일하나 만드는 target을 프로젝트로 만들순 없지요.
Makefile을 변환시켜주는 자동화된 툴이 있는지는 모르겠네요.
마지막으로 VS에서 여러 프로젝트는 하나의 솔루션으로 묶을수 있습니다.

댓글 달기

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