为什么可执行文件不可执行?

Rom*_*man 2 c++ executable compilation

我有一个hello world cpp文件.如果我通过c++ test.cpp -o test我得到"test"文件来编译它是可执行文件(-rwxr-xr-x)并且如果我执行它,它将被执行并生成预期结果.

但是,如果我使用${CXX} -std=c++0x -I${INCLUDE_DIR1} -c test.cpp -o test -L{LIB_DIR1} -llib_name我也得到"测试"文件但在这种情况下它不可执行.所以,我无法执行它.我试图chmod +x,它获得执行权限,但如果我尝试执行它会得到一条错误消息(无法执行).

我做错了什么以及如何纠正?

Mat*_*Mat 20

-c告诉编译器生成可执行文件(这意味着"只编译").它只创建一个目标文件,适合链接到可执行文件(可能与其他目标文件和库).

-c如果需要可执行文件,请删除开关.

有关完整编译过程的更多详细信息,请参阅: 编译/链接过程如何工作?