小编cpp*_*ser的帖子

将.o(C对象文件)链接到Linux上的C++文件/项目

我在linux中的.o文件有问题如下:

我有Visual.cpp调用函数ECL_Drawrect(),这个函数定义为:

#define ECL_Drawrect ECL_bDrawrect
Run Code Online (Sandbox Code Playgroud)

在我的Visual.cpp中,我还包括"ecl.h":

#include "ecl.h"

int main() {
    ECL_Drawrect (0,0,20,20,false);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

问题是函数ECL_bDrawrect在ecl.o文件中,我不知道如何链接它以使用上面提到的函数.

经过一些研究,我想出并设置如下:

g++ Visual.cpp -o Visual /usr/include/ecl.o
Run Code Online (Sandbox Code Playgroud)

ecl.o路径也包含在我的项目中,当我编译时,我收到此错误:

**** Build of configuration Debug for project Visual ****

make all 
Building file: ../src/Visual.cpp
Invoking: GCC C++ Compiler
g++ -m32 -O0 -g3 -Wall -c -fmessage-length=0 /usr/include/ecl.o -MMD -MP -MF"src/Visual.d" -MT"src/Visual.d" -o "src/Visual.o" "../src/Visual.cpp"
g++: /usr/include/ecl.o: linker input file unused because linking not done
Finished building: ../src/Visual.cpp

Building target: Visual
Invoking: GCC C++ Linker
g++ …
Run Code Online (Sandbox Code Playgroud)

c++ linux ubuntu linker object-files

2
推荐指数
1
解决办法
4459
查看次数

标签 统计

c++ ×1

linker ×1

linux ×1

object-files ×1

ubuntu ×1