2017-12-30 63 views
1

Scons의 Fortran 오브젝트 파일을 연결하는 데 문제가 있습니다.scons gfortran : 링크 줄에서 "/ out"을 제거하십시오

env = Environment(ENV = os.environ , TARGET_ARCH="x86_64") 
env = env.Clone(LINKFLAGS = '', LINK='gfortran', tools = 'gfortran') 
module = env.Object('bin/module.o', source = 'src/module.f90') 
main = env.Object('bin/main.o', source = 'src/main.f90') 
env.Requires(main, [module]) 
sources = [module[0], main[0]] 
result = env.Program(target = '#release/result', source = sources) 

SCons는 라인 연결에서 제공하는 같은 수 있습니다 : : 여기 SCons는의 ​​코드는 명령입니다

gfortran -o release/result.exe bin/main.o bin/module.o 

을하지만 제공합니다

gfortran /OUT:release/result.exe bin/main.o bin/module.o 

그것은 오류로 이어진다

gfortran: error: /OUT:release/result.exe: Invalid argument 

연결 줄에서 "/ OUT"을 어떻게 제거 할 수 있습니까?

P.

이전에 LINKFLAGS의 오류 값에 문제가 하나 더있었습니다. 그것은 "/ NOLOGO"이고 또한 오류로 주도 :

gfortran /nologo /OUT:release/result.exe bin/main.o bin/module.o 
gfortran: error: /nologo: No such file or directory 

내가 LINKFLAGS = ''하여 해결했다.

+0

어떤 운영 체제를 사용합니까? 관련이없는 [tag : fortran90] 태그 대신 태그하십시오. –

+0

Windows 8 64bit –

답변

0

TARGET_ARCH는 현재 MSVC/MSVS에만 영향을 미칩니다. 그럴 수 있습니다.

도는 Win32에는

env = Environment(ENV = os.environ , tools=['gfortran','gnulink']) 
... 

가 작동합니까 다음과 같이 명시 적으로 아마도 명시하지 않는 한 MSVC 툴체인에 기본거야?

+0

예! 고마워요. 일이 올바르게 처리되었습니다. –