문제

다른 언어를 최대한 활용하기 위해 여러 언어를 함께 컴파일 할 수 있습니까?

도움이 되었습니까?

해결책

확실히 가능합니다 링크 컴파일러와 링커가 모두 호환되는 경우 별도로 컴파일 한 후 함께 (적절하게 프로그래밍 된 경우). 예를 들어:

g77 -c one.f
gcc -c two.c
gcc -o together one.o two.o

이것은 Fortran 파일을 컴파일 한 다음 C 파일을 컴파일 한 다음 이름이 지정된 단일 실행 파일로 연결합니다. together (그들이 서로를 올바르게 호출한다고 가정합니다 ;-) GCC 도구 제품군을 사용합니다.

Microsoft의 .NET은 C#, F#, Ironpython, Ironruby 등과 같은 여러 언어를 함께 사용하는 인기있는 방법입니다. Visual Studio는 컴파일을 호환 가능한 코드와 어셈블리에서 함께 합류하는 것을 처리하지만 원하는 경우 "손으로"수행 할 수도 있습니다.

"함께 컴파일"한다면 동일한 파일 내에 여러 언어를 가지고 있음을 의미한다면 가능하지만 더 드물다는 것입니다. 예를 들어 일부 C 컴파일러에는 동일한 파일 내에서 "인라인"어셈블리 언어를 표현할 수있는 확장자가 있습니다.

다른 팁

예, 가능하지만 특정 언어에 따라 다릅니다. 예를 들어, Python에서 C 함수 또는 C ++ 클래스를 호출하는 것이 정기적으로 수행됩니다.

C. do-able의 Algol-68 Thunks를 깨끗하게 처리하는 것은 정말 어렵지만 매일하고 싶지는 않습니다.

.NET 플랫폼은 다국어입니다. 앵무새는 Perl, Python, Ruby를 혼합하기에 좋습니다. 당신은 무엇을하려고합니까?

언어 결합의 또 다른 좋은 예는 Java 플랫폼입니다. Groovy, Jython, Jruby, Scala, Clojure 및 Java와 함께 기타 언어를 인터 믹스 할 수 있습니다. 다른 언어에는 다른 컴파일러가 필요하지만 일반적으로 한 언어에서 다른 언어로 호출 할 수 있습니다. 그루비와 스칼라는 특히 상호 수술에 적합합니다.

아, 그리고 JNI (Java Native Interface)를 사용하면 Java의 C, C ++, 어셈블리 및 기타 언어를 호출 할 수 있습니다.

(.NET 플랫폼은 다른 포스터가 언급 한 것과 같은 동일한 속성을 공유합니다.)

.NET을 사용하는 경우 프로젝트를 다른 언어로 NetModules로 컴파일 한 다음 단일 DLL/EXE에 연결할 수 있습니다. Visual Studio는 이것을 지원하지 않지만 MSBuild는 그렇습니다. 컴파일을 얻는 가장 쉬운 방법은 .csproj 파일의 사본을 편집하고 출력 유형을 "모듈"으로 변경하고 msbuild를 실행하는 것입니다. 그런 다음 "링크"명령을 사용하여 모듈을 최종 EXE/DLL에 연결하십시오.

보세요 통음. 그것은 당신을 감싸줍니다 C/C++ 거의 다른 언어에서 호출 할 수 있도록 코드.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top