【问题标题】:Compiling with MinGW32 GCC. Only tell link libraries once?使用 MinGW32 GCC 编译。只告诉链接库一次?
【发布时间】:2012-07-25 09:00:48
【问题描述】:

我正在使用 mingw32 gcc 通过命令行编译程序。随着源文件的增加,我遇到了一些问题。首先,考虑以下脚本:

gcc -Wall -I"MyDir" -I"MyDir2" -L"MyLibDir" -L"MyLibDir2" -l lib1 -l lib2 -l lib3 -c file.c
gcc -Wall -I"MyDir" -I"MyDir2" -L"MyLibDir" -L"MyLibDir2" -l lib1 -l lib2 -l lib3 -c file2.c
gcc -Wall -I"MyDir" -I"MyDir2" -L"MyLibDir" -L"MyLibDir2" -l lib1 -l lib2 -l lib3 -c file3.c
gcc -o myprog.exe file1.o file2.o file3.o

现在,我不能只告诉gcc 编译器目录-I、链接器目录-L 和链接库-l 一次,然后用相同的选项编译第二个和第三个源文件,而不必重新输入?类似的东西

gcc -define-options -Wall -I"MyDir" -I"MyDir2" -L"MyLibDir" -L"MyLibDir2" -l lib1 -l lib2 -l lib3 
gcc -Wall -c file1.c
gcc -Wall -c file2.c
gcc -Wall -c file3.c
gcc -o myprog.exe file1.o file2.o file3.o

【问题讨论】:

    标签: c gcc command-line compilation mingw


    【解决方案1】:

    据我所知,不,你不能。但这就是发明 make 和 Makefile 的原因 :) 我认为 this tutorial 足以让您开始为您的小型项目编写一个体面的 Makefile。

    PS:快速而肮脏的方法是编写一个简单的 bash 脚本,将包含目录保存在一个变量中,但在我看来 Makefile 是一个更好的选择,因为您不想重新发明轮子。

    PS2:出于好奇,我发现确实有办法做到这一点。您只需要定义一些环境变量。详情见这里:How to add a default include path for gcc in linux?

    【讨论】:

    猜你喜欢
    • 2011-09-28
    • 2016-02-12
    • 2019-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 2019-01-30
    • 1970-01-01
    相关资源
    最近更新 更多