MS visual studio 에서 솔루션간 빌드 의존성 제어 질문
글쓴이: 이용재@Facebook / 작성시간: 월, 2017/12/11 - 5:14오후
안녕하세요
프로젝트를 진행하다가 VRPN 이란 것을 사용해보는 중입니다.
VRPN 프로젝트를 빌드할 때 보니까 submodule 폴더 밑에 jsoncpp 와 hidapi 란 솔루션을 두고
각 솔루션의 바이너리 파일이 없으면 먼저 빌드하고 그 결과물인 lib 파일을 링킹시키더라구요.
제가 진행하고 있는 프로젝트에서도 이와같은 방법을 이용해 제 프로젝트를 빌드할 때
VRPN.lib 바이너리가 없으면 VRPN 솔루션을 빌드한 후 링킹을 하도록 해주고 싶은데 방법을 모르겠습니다.
prebuild event로 훅을 걸어놨나 싶어서 프로젝트 세팅을 훑어봤는데 그건 아닌 것 같네요.
서로 다른 솔루션이다보니 참조프로젝트로 할 수도 없고...
무슨 방법으로 한걸까요?
Forums:
참고해보세요.
일단. 컴파일과 다운로드 방법이 있네요.
include 나 lib 우선순위를 지정하는 방법도 있습니다.
VRPN 컴파일 및 설치.
http://inclaude.blogspot.kr/2014/08/vrpn.html?m=0
다운로드
https://github.com/vrpn/vrpn/wiki
https://github.com/vrpn/vrpn/wiki/Getting-Started
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
확인해주셔서 감사합니다.
제 질문의 의도는 A와 B의 서로다른 VS 솔루션이 있고, A가 B의 바이너리를 참조해야 할 때,
A를 빌드했을 때 B도 자동으로 빌드해주는 '빌드 자동화 방법'을 묻는 것입니다.
VRPN 솔루션은 잘 빌드 되요...
비슷한 방법이 있네요.
//
요즘은 클라우드 원격 서버 VDI / AWS 아마존 EC2 등에 컴퓨터도 사용하고 있습니다.
.VHD 가상 머신 파일에 OS를 설치해서 사용하는 방법도 있습니다. 파손되면 복구가 문제니. ㅇ_ㅇ;; 주의!
파이썬은 GPU 컴파일을 지원하기도 합니다.
저전력 컴퓨터를 여러개 모아서. 그리드 컴퓨터를 사용하기도 합니다.
//원하시는 내용은 이런거 같습니다.
- 빌드 이벤트 등록
- 솔루션에 프로젝트를 추가
- DLL 이나 LIB 파일을 로딩
- ActiveX OCX 로 등록해서 사용
- 프로젝트 종속성과 빌드 순서도 참고해보세요.
- 링커'를 도스 배치파일에서 IF 문으로 분기해야 할텐데. ㅇ_ㅇ;; 그냥. DLL 로딩이 편하실거예요.
- 아니면. 따로 .EXE 프로세스를 띄우고. 통신을 하는 방법도 있습니다.
//빌드 자동화 방법'도 다양한거 같아서 찾아봤습니다.
//VRPN 관련 데모 동영상도 많이 있네요.
//
저도 VRPN 컴파일을 해봤는데. 오류가 발생했다가.
성공했네요. ㅇ_ㅇ;; Visual Studio 2017
프로젝트 탭'에서 마우스 우클릭 후 프로젝트 대상 변경(Target)'을 SDK 10 으로 지정을 해줘야 합니다.
VRPN 다운
https://github.com/vrpn/vrpn
JSONCPP 다운
https://github.com/open-source-parsers/jsoncpp
HIDAPI 다운
https://github.com/signal11/hidapi
TortoiseSVN 다운
https://sourceforge.net/projects/tortoisesvn/files/1.9.7/Application/TortoiseSVN-1.9.7.27907-x64-svn-1.9.7.msi/download?accel_key=61%3A922e1b64-de57-11e7-8838-0200ac1d1d8f&click_id=922e878e-de57-11e7-8838-0200ac1d1d8f-1&source=accel
//
빌드 자동화 방법'로 구글 검색
심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류 C1083 포함 파일을 열 수 없습니다. './submodules/hidapi/hidapi/hidapi.h': No such file or directory vrpn C:\Users\IEUser\Desktop\vrpn-master\vrpn-master\vrpn_HumanInterface.C 8
심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류 C1083 포함 파일을 열 수 없습니다. './submodules/hidapi/hidapi/hidapi.h': No such file or directory vrpndll c:\users\ieuser\desktop\vrpn-master\vrpn-master\vrpn_humaninterface.c 8
심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류 LNK1104 'C:\Users\IEUser\Desktop\vrpn-master\vrpn-master\pc_win32\Debug\vrpn.lib' 파일을 열 수 없습니다. make_vrpn_libs_build C:\Users\IEUser\Desktop\vrpn-master\vrpn-master\LINK 1
심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류 LNK1104 'C:\Users\IEUser\Desktop\vrpn-master\vrpn-master\pc_win32\Debug\vrpn.lib' 파일을 열 수 없습니다. client_and_server C:\Users\IEUser\Desktop\vrpn-master\vrpn-master\server_src\LINK 1
VRPN C# Client
https://sourceforge.net/projects/vrpnclient/?source=navbar
https://sourceforge.net/p/vrpnclient/vrpncsharpclient/HEAD/tree/trunk/
Tree [r11] / trunk / VRPNCsharpClient_v1.0.2beta / include / vrpn / submodules / hidapi / Download Snapshot
https://sourceforge.net/p/vrpnclient/vrpncsharpclient/11/tree/trunk/VRPNCsharpClient_v1.0.2beta/include/vrpn/submodules/hidapi/
Is it safe to pass uint8_t in assignment? #403
https://github.com/open-source-parsers/jsoncpp/issues/403
open-source-parsers/jsoncpp
https://github.com/open-source-parsers/jsoncpp
About TortoiseSVN
https://sourceforge.net/projects/tortoisesvn/files/1.9.7/Application/TortoiseSVN-1.9.7.27907-x64-svn-1.9.7.msi/download?accel_key=61%3A922e1b64-de57-11e7-8838-0200ac1d1d8f&click_id=922e878e-de57-11e7-8838-0200ac1d1d8f-1&source=accel
개발 서버에 소스 코드 배포 과정에 대한 자동화
https://www.youtube.com/watch?v=X6UgSdjvrBU
[Visual Studio 2012] Visual Studio 2012의 Lab 관리를 통한 Build-Deploy-Test 워크플로우 자동화
https://www.youtube.com/watch?v=b8w1REYhhcg
Docker+Kubernetes를 이용한 빌드 서버 가상화 사례 SK플래닛@tech세미나
https://www.youtube.com/watch?v=EZE-aw2ndjg
[Webcast] 효과적인 애플리케이션 가상화와 인프라 관리 방법
https://www.youtube.com/watch?v=m32g4RWIIH4
UWP 앱에 대한 자동화된 빌드 설정
https://docs.microsoft.com/ko-kr/windows/uwp/packaging/auto-build-package-uwp-apps
svn checkout https://svn.code.sf.net/p/vrpnclient/vrpncsharpclient/trunk vrpnclient-vrpncsharpclient
svn checkout svn://svn.code.sf.net/p/vrpnclient/vrpncsharpclient/trunk vrpnclient-vrpncsharpclient
https://svn.code.sf.net/p/vrpnclient/vrpncsharpclient/trunk/VRPNCsharpClient_v1.0.2beta/include/vrpn/submodules/
https://sourceforge.net/p/vrpnclient/vrpncsharpclient/14/tree/trunk/VRPNCsharpClient_v1.0.6beta/include/vrpn/submodules/
202 5분만에 Jenkins Azure에서 배포하기
https://www.youtube.com/watch?v=9EmL9RqTbjU
빌드자동화와 테스트자동화 그리고 CI
http://charsyam.blog.me/30033536587
gitlab Runner를 이용한 자동화 빌드 구성 방법
http://blog.naver.com/sangrae-lee/220850671002
테스트 자동화 -단계적 빌드 자동화 / wed전문가과정
http://blog.naver.com/heesu2071/80197360637
NAnt 로 만들어 보는 빌드 자동화 1 - 설치
http://ondemand.tistory.com/136
Android Studio를 이용한 빌드 자동화 Gradle
http://used.kyobobook.co.kr/product/viewBookDetail.ink?cmdtBrcd=7248586192273
UE4 용 Visual Studio 셋업하기
https://docs.unrealengine.com/latest/KOR/Programming/Development/VisualStudioSetup/index.html
MS, ‘이그나이트 2017’서 AI 통합 '퀀텀 컴퓨팅' 비전 발표
http://www.iusm.co.kr/news/articleView.html?idxno=766370
[사용기]Visual Studio로 간단 LED 조작
http://cafe.naver.com/icbanq/2507
Visual Studio에서 솔루션 파일 그룹핑하기
https://blog.naver.com/aquayo/220881555009
Visual Studio 솔루션/프로젝트에 jQuery Scripts 폴더 추가하기 MS.NET / 개발
http://blog.naver.com/mininuke7303/50174646667
Visual Studio 솔루션에 새프로젝트 추가하기. 예... 2015.12.10.
http://igotit.tistory.com/477
Visual Studio 2005에서 솔루션이 안나올 때 Translation
http://blog.naver.com/guruby/140045205716
include 경로 추가하기 - Visual Studio 6.0/2005
http://blog.naver.com/skym9000/220767684775
방법: 다중 프로젝트 솔루션 만들기
https://msdn.microsoft.com/ko-kr/library/h970wzkb(v=vs.120).aspx
visual studio 2010 에서 기존 프로젝트 복사해서 쓰기
https://m.blog.naver.com/PostView.nhn?blogId=herbbread&logNo=220722348683&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F
visual-studio - Visual Studio에서 전체 디렉터리 구조를 "기존 항목 추가"하는 방법?
https://code.i-harness.com/ko/q/e1b0
버전 / 빌드.......란? 컴맹탈출 ·Computer
http://blog.naver.com/PostView.nhn?blogId=misterryu&logNo=110143786834
빌드 번호를 Revit Update와 연결하는 방법
https://knowledge.autodesk.com/ko/support/revit-products/learn-explore/caas/sfdcarticles/sfdcarticles/KOR/How-to-tie-the-Build-number-with-the-Revit-update.html
PostgreSQL 9.2.2 Windows 환경에서 빌드하기 Step by Step | ETC
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=8624&ref=8624
openssl version 1.0 빌드 참고 문서 | VC++ 일반
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=8461&ref=8461
bat파일로 빌드 하기
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=8280&ref=8280
Visual Studio 열지 않고 빌드하기 | VC++ 일반
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=8274&ref=8274
리소스 번호 자동 증가 매크로
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=4255&ref=1419
C:\Users\IEUser\Desktop\vrpn-master\vrpn-master\submodules\hidapi\windows
hid.c 가 아니라며. 오류가 발생
hid.cpp 를 hid.c 로 이름 변경
심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류 C2059 구문 오류: '문자열' vrpn c:\users\ieuser\desktop\vrpn-master\vrpn-master\submodules\hidapi\windows\hid.c 37
//주석 처리
extern "C" {
}
심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류 C2100 간접 참조가 잘못되었습니다. vrpndll c:\program files (x86)\windows kits\10\include\10.0.16299.0\ucrt\stdio.h 1497
INI 파일을 이용해서 빌드할때 마다 빌드번호 자동으로 올리는 방법 | VC++ 일반
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=8529&ref=8529
VC 프로젝트 빌드넘버 자동증가 시키기
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=7121&ref=7121
Active X 컨트롤 자동 갱신해주기 ( 귀찮은 regsvr32 안쓰고... )
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=6582&ref=6582
공유기를 사용하는 환경에서 게임이 자동 패치가 안됩니다.
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=6177&ref=6155
OLE자동화 기초 | ActiveX/COM
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=3659&ref=1190
VC++ 6.0에서와 .NET환경에서의 CString 자동형변환문제에 대해서...
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=4576&ref=1541
쉘 스크립트를 활용한 배포 자동화
https://academy.realm.io/kr/posts/android-ui-test-automation/
쉘 스크립트를 활용한 배포 자동화
https://www.youtube.com/watch?v=U7tZnEiYJyE
[6장 웹 프로그램과 애플릿] 1. 애플릿의 실행 원리
https://www.youtube.com/watch?v=dJVXw1SJO4Q
hidapi/README.txt
https://github.com/signal11/hidapi
https://github.com/signal11/hidapi/blob/master/README.txt
git clone git://github.com/signal11/hidapi.git
http://www.signal11.us/oss/hidapi/
https://github.com/signal11/hidapi/downloads
http://www.signal11.us/oss/hidapi/hidapi/doxygen/html/group__API.html
http://brewformulas.org/Hidapi
USB HID API for Windows
http://www.microchip.com/forums/m492321.aspx
[6장 웹 프로그램과 애플릿] 1. 애플릿의 실행 원리
https://www.youtube.com/watch?v=dJVXw1SJO4Q
UIAutomator2와 DeviceFarm을 활용한 UI 테스트 자동화
by 유윤재
https://academy.realm.io/kr/posts/android-ui-test-automation/
쉘 스크립트를 활용한 배포 자동화
https://www.youtube.com/watch?v=U7tZnEiYJyE
1-7. AWS 원격 서버에 자바 소스 코드 배포 및 재배포
https://www.youtube.com/watch?v=--bUO7KNFJ4
[NDC 2016] 글로벌 원빌드 모바일 게임 론칭과 라이브 개발 | 넥슨 이희영
https://www.youtube.com/watch?v=sPt-7LAHv0c
Function|SOLIDWORKS Composer - 90초만에 커뮤니케이션 문서작성이 가능합니다
https://www.youtube.com/watch?v=gdnQq84B3mY
효율적인 데브옵스를 위한 AWS 개발 도구 활용하기 - 김필중 솔루션즈 아키텍트(AWS 코리아)
https://www.youtube.com/watch?v=XifpCK44zjQ
안드로이드 앱을 빠르고 지속적으로 전달하기
https://academy.realm.io/kr/posts/continuous-delivery-for-android/
지속적인 전달을 위한 자동화 도구, fastlane: 데모와 함께 알아보기
by 구범모 May 11 2017
https://academy.realm.io/kr/posts/ios-fastlane-demos/
[세션]3. Git 기반의 애자일 개발 환경 구축 및 개발 프로세스 설명/고객과 소통하는 소프트웨어 유지보수 프로세스 구축 및 실천 방법
https://www.youtube.com/watch?v=Ioyr7mMC5Ek
빌드 이벤트
[C++] 빌드 이벤트 - 빌드 후 이벤트로 파일 복사하기 - 두번째 뇌 - Tistory
http://devhoma.tistory.com/12
Visual Studio에서 사용자 지정 빌드 이벤트 지정
https://msdn.microsoft.com/ko-kr/library/ms165412.aspx
빌드 전 이벤트/빌드 후 이벤트 명령줄 대화 상자
https://msdn.microsoft.com/ko-kr/library/42x5kfw4.aspx
[TIP] 빌드 이벤트 활용방법
1. 실전 빌드 이벤트 ( GAC 자동 등록하기 )
http://truepia.tistory.com/23
빌드 이벤트(전, 후), 빌드 종속성(빌드순서)
http://dlgnlfus.tistory.com/199
실전 빌드 이벤트
http://blog.powerumc.kr/62
VS 빌드 이벤트의 활용
http://egloos.zum.com/javawork/v/1812308
빌드 이벤트로 파일 복사할 때 주의할 점
https://andromedarabbit.net/be_careful_when_copying_files_as_a_build_event/
Visual Studio 에서 빌드 후 생성 파일 복사
http://xerror.tistory.com/49
Build Event 파일 복사하기( Post Build Event )
http://3dmpengines.tistory.com/1382
linking visual studio
Setting Linker Options
https://msdn.microsoft.com/en-us/library/wk97ab1b.aspx
LINK Command Files
https://msdn.microsoft.com/en-us/library/9xch38h8.aspx
link /dll @objlist.txt @liblist.txt @exports.txt
링커 옵션
https://msdn.microsoft.com/ko-kr/library/y0zzbyt4.aspx
/DELAYLOAD(가져오기 로드 지연)
https://msdn.microsoft.com/ko-kr/library/yx9zd12s.aspx
Compiling and Linking
https://msdn.microsoft.com/en-us/library/aa243604(v=vs.60).aspx
No Linker option in Visual Studio Project Properties
https://stackoverflow.com/questions/5234899/no-linker-option-in-visual-studio-project-properties
Linking dll in Visual Studio
https://stackoverflow.com/questions/7845886/linking-dll-in-visual-studio
#pragma comment(lib, "dll.lib")
What does the “Link Library Dependency” linker option actually do in Visual Studio 2010?
https://stackoverflow.com/questions/7683869/what-does-the-link-library-dependency-linker-option-actually-do-in-visual-stud
Linking on Android
https://developer.xamarin.com/guides/android/advanced_topics/linking/
C++ Programming/Compiler/Linker/Libraries/Configuring Visual Studio
https://en.wikibooks.org/wiki/C%2B%2B_Programming/Compiler/Linker/Libraries/Configuring_Visual_Studio
linking C++ and Fortran in Visual Studio 2010
https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-for-windows/topic/520469
Add support for the Visual Studio 2017 linker #38584
https://github.com/rust-lang/rust/issues/38584
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
감사합니다
다시 확인해보니 VRPN 에서는 서브모듈들을 헤더만 인클루드 시켜서 사용한 것 같네요.
그렇지만 제 프로젝트에서는 앞서 말씀드린 형태의 의존 관계가 필요하기 때문에,
빌드이벤트 쪽을 좀 더 봐야 할 것 같습니다.
감사합니다.
댓글 달기